Дата PHP, показывающая «1970-01-01» после преобразования

У меня есть форма, в которой формат даты равен dd/mm/yyyy . Для поиска базы данных я исказил формат даты до yyyy-mm-dd . Но когда я echo это, он показывает 1970-01-01 . Ниже приведен код PHP:

 $date1 = $_REQUEST['date']; echo date('Ym-d', strtotime($date1)); 

Почему это происходит? Как я могу отформатировать его до yyyy-mm-dd ?

Заменить / с - :

 $date1 = strtr($_REQUEST['date'], '/', '-'); echo date('Ym-d', strtotime($date1)); 

1 января 1970 года – так называемая эпоха Unix. Это дата, когда они начали отсчитывать время Unix . Если вы получите эту дату как возвращаемое значение, это обычно означает, что преобразование вашей даты в временную метку Unix вернуло (почти) нулевой результат. Таким образом, преобразование даты не выполняется. Скорее всего, потому, что он получает неправильный ввод.

Другими словами, ваш strtotime($date1) возвращает 0, что означает, что $date1 передается в неподдерживаемом формате для функции strtotime.

Используйте нижеприведенный код для php 5.3+:

 $date = new DateTime('1900-02-15'); echo $date->format('Ym-d'); 

Используйте нижеприведенный код для php 5.2:

 $date = new DateTime('1900-02-15'); echo $date->format('Ym-d'); 
 $date1 = $_REQUEST['date']; if($date1) { $date1 = date( 'Ym-d', strtotime($date1)); } else { $date1 = ''; } 

Это будет отображаться правильно, если в $date есть действительная date() и ничего не отображать, если нет.
Решил проблему для меня.

наконец, я нашел один код для решения этой проблемы

 date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT'])));