Reputation: 1593
I have a form in which date format is dd/mm/yyyy
. For searching database , I hanverted the date format to yyyy-mm-dd
. But when I echo
it, it showing 1970-01-01
. The PHP code is below:
$date1 = $_REQUEST['date'];
echo date('Y-m-d', strtotime($date1));
Why is it happening? How can I format it to yyyy-mm-dd
?
Upvotes: 36
Views: 125613
Reputation: 4712
The issue is when your data is set to 000-00-00 or empty you must double-check and give the correct information and this issue will go away. I hope this helps.
Upvotes: 0
Reputation: 852
Another workaround:
Convert datepicker dd/mm/yyyy
to yyyy-mm-dd
$startDate = trim($_POST['startDate']);
$startDateArray = explode('/',$startDate);
$mysqlStartDate = $startDateArray[2]."-".$startDateArray[1]."-".$startDateArray[0];
$startDate = $mysqlStartDate;
Upvotes: 0
Reputation: 189
$inputDate = '07/05/-0001';
$dateStrVal = strtotime($inputDate);
if(empty($dateStrVal))
{
echo 'Given date is wrong';
}
else{
echo 'Date is correct';
}
O/P : Given date is wrong
Upvotes: 2
Reputation: 107
$date1 = $_REQUEST['date'];
if($date1) {
$date1 = date( 'Y-m-d', strtotime($date1));
} else {
$date1 = '';
}
This will display properly when there is a valid date()
in $date
and display nothing if not.
Solved the issue for me.
Upvotes: 1
Reputation: 269
Use below code for php 5.3+:
$date = new DateTime('1900-02-15');
echo $date->format('Y-m-d');
Use below code for php 5.2:
$date = new DateTime('1900-02-15');
echo $date->format('Y-m-d');
Upvotes: -1
Reputation: 30071
Replace /
with -
:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
Upvotes: 87
Reputation: 439
finally i have found a one line code to solve this problem
date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT'])));
Upvotes: -2
Reputation: 34867
January 1, 1970 is the so called Unix epoch. It's the date where they started counting the Unix time. If you get this date as a return value, it usually means that the conversion of your date to the Unix timestamp returned a (near-) zero result. So the date conversion doesn't succeed. Most likely because it receives a wrong input.
In other words, your strtotime($date1)
returns 0, meaning that $date1
is passed in an unsupported format for the strtotime function.
Upvotes: 36