如果日期变量为空,如何将 php strtotime 强制为 return 今天的日期?

How to force php strtotime to return today date if date variable is empty?

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

我正在尝试更改行为,以便在未选择日期时将当前日期传递到 PHP 文件中。

PHP 文件中的代码如下:

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

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

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

你得到那个的原因是因为 strtotime return如果它不能解析日期,它就是 false。
False 类型转换为 00 的日期为 1970。

您可以做的是检查 strtotime return 是否为假。 (我认为与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");
}