Ответ 1
Замените /
на -
:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
У меня есть форма, в которой формат даты dd/mm/yyyy
. Для поиска в базе данных я передал формат даты в yyyy-mm-dd
. Но когда я echo
это, это показывает 1970-01-01
. Код PHP ниже:
$date1 = $_REQUEST['date'];
echo date('Y-m-d', strtotime($date1));
Почему это происходит? Как я могу отформатировать его в yyyy-mm-dd
?
Замените /
на -
:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
1 января 1970 года - так называемая эпоха Unix. Это дата, когда они начали считать Unix time. Если вы получите эту дату как возвращаемое значение, это обычно означает, что преобразование вашей даты в временную метку Unix вернуло (почти) нулевой результат. Таким образом, преобразование даты не выполняется. Скорее всего потому, что он получает неправильный ввод.
Другими словами, ваш strtotime($date1)
возвращает 0, что означает, что $date1
передается в неподдерживаемом формате для функции strtotime.
$inputDate = '07/05/-0001';
$dateStrVal = strtotime($inputDate);
if(empty($dateStrVal))
{
echo 'Given date is wrong';
}
else{
echo 'Date is correct';
}
O/P: данная дата неверна
Используйте приведенный ниже код для php 5.3 +:
$date = new DateTime('1900-02-15');
echo $date->format('Y-m-d');
Используйте код ниже для php 5.2:
$date = new DateTime('1900-02-15');
echo $date->format('Y-m-d');
$date1 = $_REQUEST['date'];
if($date1) {
$date1 = date( 'Y-m-d', strtotime($date1));
} else {
$date1 = '';
}
Это будет отображаться правильно, если в $date
есть допустимый date()
и ничего не отображать, если нет.
Решили проблему для меня.
Другой обходной путь:
Преобразовать DatePicker dd/mm/yyyy
в yyyy-mm-dd
$startDate = trim($_POST['startDate']);
$startDateArray = explode('/',$startDate);
$mysqlStartDate = $startDateArray[2]."-".$startDateArray[1]."-".$startDateArray[0];
$startDate = $mysqlStartDate;
Наконец, я нашел один ряд строк для решения этой проблемы
date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT'])));