PHP比较日期时间值

dtn*_*cdr 3 php datetime

在我的PHP应用程序中,我正在尝试比较日期时间值,如下所示:

if($datetime_from_db < date('Y-m-d H:i:s'))
{
    // then do something
}
Run Code Online (Sandbox Code Playgroud)

两个值的格式相同.我无法弄清楚为什么它只比较日期并忽略时间.日期和时间值对我来说都很重要,但我不知道如何使它工作.

dec*_*eze 19

比较字符串"2011-02-14 15:46:00"另一个字符串实际上并不比较日期,它根据字符串解析数字规则比较两个字符串.您需要比较实际的数字时间戳:

strtotime($datetime_from_db) < time()
Run Code Online (Sandbox Code Playgroud)

  • @dtn是的,但`strtotime(date('Ymd H:i:s'))`与[`time()`](http://php.net/time)相同. (3认同)

And*_*rew 6

如果您希望这与2038年以后的日期一起使用,则不能使用strtotime()或time().

请参阅此问题以获得解释.

更好的方法:

new DateTime($datetime_from_db) < new DateTime();