У меня есть календарь js на странице HTML, и я передаю выбранную дату в файл PHP. В настоящее время поле даты является обязательным, и в нем будет отображаться значение по умолчанию 1970/01/01, если в календаре не выбрана дата.
Я пытаюсь изменить поведение так, чтобы, когда дата не выбрана, текущая дата передавалась в файл PHP.
Код в файле PHP приведен ниже:
$mydate = strtotime($_POST['mydate']);
$mydate = date("Y/m/d",$mydate);
Как я могу изменить его, чтобы отображалась текущая дата, если от $_POST['mydate']
не было передано никакого значения?
PS: Я новичок в функциях PHP, и поиск похожих случаев на форумах не помог.
Причина этого в том, что strtotime возвращает false, если не может проанализировать дату.
Ложь имеет тип 0
, а дата 0
- 1970.
Что вы можете сделать, так это проверить, является ли возврат strtotime ложным. (На мой взгляд, не то же самое, что isset или 0).
$mydate = strtotime($_POST['mydate']);
if ($mydate === false){ // === is strict comparison
$mydate = date("Y/m/d");
}else{
$mydate = date("Y/m/d",$mydate);
}
Попробуй это:
if ( empty( $_POST['mydate'])){
$mydate = date("Y/m/d");
} elseif ( FALSE !== $tm = strtotime( $_POST['mydate'])) {
$mydate = date("Y/m/d", $tm);
} else {
$mydate = date("Y/m/d");
}