如果date变量为空,如何强制php strtotime返回今天的日期?

时间:2018-10-27 08:41:58

标签: php date strtotime

我在HTML页面中有一个js日历,并将选择的日期传递到一个PHP文件中。当前,日期字段是必填字段,如果日历中未选择任何日期,它将显示默认的1970/01/01。

我正在尝试更改行为,以便在不选择日期的情况下将当前日期传递到PHP文件中。

PHP文件中的代码如下:

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

如果$_POST['mydate']没有传递任何值,如何更改它以显示当前日期?

PS:我是PHP函数的新手,在论坛中搜索类似的案例没有帮助。

2 个答案:

答案 0 :(得分:2)

之所以会这样,是因为strtotime无法解析日期,因此返回false。
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);
}

答案 1 :(得分:0)

尝试一下:

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");
}