date_create_from_format created将日期视为布尔值

时间:2015-07-22 09:56:55

标签: php time


我想从我的数据库中读出一些时间并删除所有字段(如时间所示)比现在更早的条目。
这是我目前的代码:

//$eSonderPreis->R_GLTBISDATUM = 30.12.1899
$bisDatum = date_create_from_format('Y-m-d H:i:s', $eSonderPreis->R_GLTBISDATUM);
//var_dump returns: [...] string(19) "1899-12-30 00:00:00" [...]
var_dump(date_timestamp_get($bisDatum));
//var_dump returns: boolean false
echo " - ";
var_dump($thetime);
//var_dump returns: current time as int

if(date_timestamp_get($bisDatum) < $thetime)
{
    unset($aData[$key]);
}

date_timestamp_get返回false,表示失败(根据文档)。为什么会这样?

1 个答案:

答案 0 :(得分:1)

如果日期早于Unix纪元时间(01/01/1970),date_timestamp_get()将返回false。

您可以使用格式(“U”)来获取时间:

echo $bisDatum->format("U");

这里有一些相关信息:http://php.net/manual/en/datetime.gettimestamp.php

专门针对您的代码:

if($bisDatum->format("U") < $thetime)
{
    unset($aData[$key]);
}