date_create_from_format 创建日期被视为布尔值

date_create_from_format created Date seen as boolean


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

//$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 returns false,这意味着它失败了(根据文档)。为什么会这样?

如果日期早于 Unix 纪元时间 (01/01/1970),date_timestamp_get() 将 return 为假。

您可以使用 format("U") 代替获取时间:

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

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

专门针对您的代码:

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