防止PHP date()默认为12/31/1969

时间:2010-02-08 19:01:59

标签: php date default

我正在使用带有PHP的MySQL数据库。我使用DATETIME字段将日期值存储在数据库中。

我正在使用此PHP代码将输入的日期转换为适当的MySQL格式。

date("Y-m-d H:i:s", strtotime($inputDate))

但是,只要日期无效,它就会以1969-12-31 19:00:00

的形式放在数据库中

有没有办法将其默认为0000-00-00 00:00:00

2 个答案:

答案 0 :(得分:15)

只需使用strtotime()的输出检测有效性,returns false on failure

类似的东西:

$time = strtotime($inputDate);
$date = ($time === false) ? '0000-00-00 00:00:00' : date('Y-m-d H:i:s', $time);

答案 1 :(得分:1)

strtotime返回false,哪个日期证明为0.在你应该检查strtotime没有返回false以防止:

$ts = strtotime($inputDate);

if ($ts === false)
{
//invalid date
}
else
{
echo date("Y-m-d H:i:s", $ts);
}