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
?
$date = date("yyyy-mm-dd", strtotime(now));
Answer: Use the strtotime() Function You can first use the PHP strtotime() function to convert any textual datetime into Unix timestamp, then simply use the PHP date() function to convert this timestamp into desired date format. The following example will convert a date from yyyy-mm-dd format to dd-mm-yyyy.
Replace /
with -
:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
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.
$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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With