防止 PHP date() 默认为 12/31/1969
Posted
技术标签:
【中文标题】防止 PHP date() 默认为 12/31/1969【英文标题】:Prevent PHP date() from defaulting to 12/31/1969 【发布时间】:2010-02-08 19:01:59 【问题描述】:我正在使用带有 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
?
【问题讨论】:
【参考方案1】:只需使用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);
【讨论】:
【参考方案2】:strtotime 返回 false,日期 eval 为 0。在检查 strtotime 是否返回 false 以防止出现这种情况之前:
$ts = strtotime($inputDate);
if ($ts === false)
//invalid date
else
echo date("Y-m-d H:i:s", $ts);
【讨论】:
以上是关于防止 PHP date() 默认为 12/31/1969的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PHP 中将默认时区设置为用户的本地时区? [复制]