Как заставить php strtotime возвращать дату сегодня, если переменная даты пуста? - PullRequest
0 голосов
/ 27 октября 2018

У меня есть календарь js на странице HTML, и я передаю выбранную дату в файл PHP.В настоящее время поле даты является обязательным, и оно будет отображать значение по умолчанию 1970/01/01, если в календаре не выбрана дата.

Я пытаюсь изменить поведение так, чтобы, когда дата не выбрана, тотекущая дата будет передана в файл PHP.

Код в файле PHP приведен ниже:

$mydate = strtotime($_POST['mydate']);
$mydate = date("Y/m/d",$mydate);

Как я могу изменить его, чтобы отображать текущую дату, если значение не передано из $_POST['mydate']?

PS: я новичок в функциях PHP и поиск похожих случаев на форумах не помог.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Попробуйте это:

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");
}
0 голосов
/ 27 октября 2018

Причина, по которой вы получаете это, состоит в том, что strtotime возвращает false, если не может проанализировать дату.
Значение false установлено на 0, а дата 0 равна 1970.

Что выМожно проверить, является ли возвращаемое strtotime значение false.(На мой взгляд, не то же самое, что isset или 0).

$mydate = strtotime($_POST['mydate']);
if($mydate === false){ // === is strict comparison
    $mydate = date("Y/m/d");
}else{
    $mydate = date("Y/m/d",$mydate);
}
...