date()可以这样比较


Can date() be compared like this?

我在比较日期/时间时遇到了一些问题。

我有一个正在工作的代码,它突然停止了工作。现在我对它做了一些更改,但由于某些原因,UNIX时间不正确。

Utime和nexttime现在只是一个示例字符串,但在代码中,Utime是最后一次更新,nexttime是根据Utime计算的下一次更新。

示例:

 $Utime = "201603300450"; // YmdHi 2016 03 30 04:50
 $nexttime = "201603300520"; 
 if (date("YmdHi")>=$Utime && date("YmdHi")>=$nexttime)

这是比较时间值的安全方法吗?我对时间有一些问题,这就是我问的原因。

您应该将日期转换为DateTime对象:

<?php
$Utime = "201603300450";
$nexttime = "201603300520";
$dateUtime = DateTime::createFromFormat('YmdHi', $Utime);
$datenexttime = DateTime::createFromFormat('YmdHi', $nexttime);
$nowDate = DateTime::createFromFormat('YmdHi', date('YmdHi'));
if ($nowDate>=$dateUtime && $nowDate>=$datenexttime)
    //do your stuff...

Strtotime应该可以正常工作,但应该坚持有效的格式。"Y-m-d H:i:s"是strtotime的有效格式。

希望有帮助:)

strtotime()在这方面是一个很好的助手。

检查时间

$Utime = "201603300450";
$nexttime = "201603300520";
if ( strtotime('now') >= strtotime($Utime) && strtotime('now') >= strtotime($nexttime) )