当我从MySQL查询中获取日期时,其中一些是NULL,因为未知。 但是,当我使用date_create将它们翻译成PHP时,默认情况下将null日期替换为今天日期,这不是我想要的。 我试图将日期对象中的日期properety设置为null或空字符串无效。 有什么方法可以摆脱这个默认日期吗?
答案 0 :(得分:1)
$created_date = $date === null ? null : date_create($date);
这是一个三元表达式,如果$created_date
为空,则将$date
设置为null,否则将其设置为date_create($date)
。
答案 1 :(得分:1)
只要无法将日期字符串解析为null
对象,它就可能被设置为DateTime
。
我建议使用DateTime::createFromFormat
。
// Adjust the format to your requirements
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
在更好地审视您的问题后,我认为您也可以这样做:
if (is_null($date)) {
$date = "0000-01-01";
}
$date = DateTime::createFromFormat('Y-m-d', $date);
这样,日期将设置为第一个可能的日期(1月1日0000)