Re: Formatting Date (m/d/yyyy) To Timestamp
| From: | Curtis Maurand | Date: | Mon, 11 Jan 2021 22:57:42 +0000 |
| Subject: | Re: Formatting Date (m/d/yyyy) To Timestamp | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-327405@lists.php.net to get a copy of this message | ||
I would take a look at this page. I think it has what you are looking for.
https://stackoverflow.com/questions/11133760/mysql-convert-date-string-to-unix-timestamp
Sent from my iPhone
> On Jan 11, 2021, at 4:59 PM, Serge Fonville <serge.fonville@gmail.com> wrote:
>
>
>> When I try : $stmp->bind_param('$des', '$d1', '$a',
>> '$m', '$t', '$s');
>> I get: Fatal error: Uncaught Error: mysqli_stmt::bind_param(): Argument #2 cannot be passed
>> by reference
>> What does that mean?
> You are converting all values to strings, the whole idea is to maintain the data type, so you
> should remove the quotes.
> On top of that, you are using single quotes, so the values are not expanded inside the string.
>
> Kind regards/met vriendelijke groet,
>
> Serge Fonville
>
> http://www.sergefonville.nl
>
>
> Op ma 11 jan. 2021 om 22:44 schreef Talin Sharma <talinsharma.in@gmail.com>:
>> When I try : $stmp->bind_param('$des', '$d1', '$a',
>> '$m', '$t', '$s');
>> I get: Fatal error: Uncaught Error: mysqli_stmt::bind_param(): Argument #2 cannot be passed
>> by reference
>>
>> What does that mean?
>> Thanks:
>> Talin Sharma
>>
>>
>> On Mon, Jan 11, 2021 at 12:44 PM Serge Fonville <serge.fonville@gmail.com> wrote:
>>>> What would I put where you have to tell what type of date(string, number?)
>>> One of the benefits of prepared statements is that you do not need to convert or
>>> specify data types. Since the mysqli library handles that for you. It finds the datatype from the
>>> datatype of the variable and passes its value to the database service.
>>>
>>> Kind regards/met vriendelijke groet,
>>>
>>> Serge Fonville
>>>
>>> http://www.sergefonville.nl
>>>
>>>
>>> Op ma 11 jan. 2021 om 13:42 schreef Talin Sharma <talinsharma.in@gmail.com>:
>>>> I can try this but if I use prepared statements, I have multiple fields to insert.
>>>> What would I put where you have to tell what type of date(string, number?)
>>>>
>>>> Thanks:
>>>> Talin Sharma
>>>>
>>>>
>>>> On Mon, Jan 11, 2021 at 2:42 AM Serge Fonville <serge.fonville@gmail.com>
>>>> wrote:
>>>>> I tried and minimize your question to the following code:
>>>>>
>>>>> <?php
>>>>>
>>>>> $date_from_sheet = "1/1/2021";
>>>>> // As you know the format of the date, it is easier to convert based on that
>>>>> $timestamp = DateTime::createFromFormat('d./m/Y', $date_from_sheet);
>>>>>
>>>>> // Instead of inserting the values inside the string, use bind variables
>>>>> instead.
>>>>> $query = "INSERT INTO some_table(date_field) values (?)";
>>>>> // I'm assuming $mysqli is already instantiated elsewhere
>>>>> $stmt = $mysqli->prepare($query);
>>>>> // The only field in the query is the date field,
>>>>> // so it is clear that the only parameter is the corresponding value
>>>>> $stmt->bind_param($timestamp);
>>>>> // The only remaining thing to do is execute it.
>>>>> $stmt->execute();
>>>>> ?>
>>>>>
>>>>> Does this enable you to solve your issue?
>>>>>
>>>>> I used the following sources:
>>>>>
>>>>> https://www.php.net/manual/en/mysqli-stmt.bind-param.php
>>>>>
>>>>> https://www.php.net/manual/en/datetime.createfromformat.php
>>>>>
>>>>> Kind regards/met vriendelijke groet,
>>>>>
>>>>> Serge Fonville
>>>>>
>>>>> http://www.sergefonville.nl
>>>>>
>>>>>
>>>>> Op ma 11 jan. 2021 om 02:18 schreef Talin Sharma
>>>>> <talinsharma.in@gmail..com>:
>>>>>> I have also tried: $d1 = date("Y-m-d H:i:s", strtotime($d)); But
>>>>>> that returns random dates when I insert into the database... What is wrong?
>>>>>>
>>>>>>
>>>>>> Thanks:
>>>>>> Talin Sharma
>>>>>>
>>>>>>
>>>>>> On Sun, Jan 10, 2021 at 7:10 PM Talin Sharma
>>>>>> <talinsharma.in@gmail.com> wrote:
>>>>>>> Also here is the excel sheet I am using for testing.
>>>>>>> Thanks:
>>>>>>> Talin Sharma
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Jan 10, 2021 at 7:05 PM Talin Sharma
>>>>>>> <talinsharma.in@gmail.com> wrote:
>>>>>>>> I am attaching all of my code. How do I enter the timestamp to the
>>>>>>>> database then?
>>>>>>>>
>>>>>>>> Thanks:
>>>>>>>> Talin Sharma
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Jan 10, 2021 at 7:01 PM Serge Fonville
>>>>>>>> <serge.fonville@gmail.com> wrote:
>>>>>>>>>> It doesn't seem to work. What I did: $d1 =
>>>>>>>>>> 'strtotime('1/1/2021'); echo $d1;' Echos: '980053200' That in human
>>>>>>>>>> form is: 'November 30, -0001' Not what I want... any idea why?
>>>>>>>>> You are converting the timestamp to a string again using echo,
>>>>>>>>> this outputs a unix epoch. You should instead treat $d1 as
>>>>>>>>>
>>>>>>>>> Perhaps if you share a bigger part of your code, it would be
>>>>>>>>> easier to be of help.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Kind regards/met vriendelijke groet,
>>>>>>>>>
>>>>>>>>> Serge Fonville
>>>>>>>>>
>>>>>>>>> http://www.sergefonville.nl
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Op ma 11 jan. 2021 om 00:51 schreef Talin Sharma
>>>>>>>>> <talinsharma.in@gmail.com>:
>>>>>>>>>> It doesn't seem to work. What I did: $d1 =
>>>>>>>>>> 'strtotime('1/1/2021'); echo $d1;' Echos: '980053200' That in human
>>>>>>>>>> form is: 'November 30, -0001' Not what I want... any idea why?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks:
>>>>>>>>>> Talin Sharma
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sun, Jan 10, 2021 at 6:30 PM Serge Fonville
>>>>>>>>>> <serge.fonville@gmail.com> wrote:
>>>>>>>>>>> Hi Talin,
>>>>>>>>>>>
>>>>>>>>>>> Would
>>>>>>>>>>> https://www.php.net/manual/en/function.strtotime.php solve your
>>>>>>>>>>> conversion problem?
>>>>>>>>>>>
>>>>>>>>>>> Kind regards/met vriendelijke groet,
>>>>>>>>>>>
>>>>>>>>>>> Serge Fonville
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://www.sergefonville.nl
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Op ma 11 jan. 2021 om 00:18 schreef Talin Sharma
>>>>>>>>>>> <talinsharma.in@gmail.com>:
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> I have a string: '1/1/2021'. I want to
>>>>>>>>>>>> turn this into a timestamp for entering into MySql. I have tried everything I could find. Please let
>>>>>>>>>>>> me know how to proceed.
>>>>>>>>>>>>
>>>>>>>>>>>> Also, let me know if you need more information.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks:
>>>>>>>>>>>> Talin Sharma