通过>和<运算符比较日期



在我的php代码中,我用UTC存储日期和时间,但我也用mysql存储日期时间(也用UTC(。

使用大于和小于运算符进行日期比较会失败吗?

        $curdate=date('Y-m-d H:i:s');
        if($start_datetime>$curdate)

没有
他们不可能失败
Mysql日期格式是专门为此目的而制作的。

没有任何理由将其转换为任何其他格式进行比较。

PHP:使用strtotime()将日期更改为UNIX时间戳,然后u可以进行比较。


MySQL:

将日期列的dataType更改为DateTime,然后u可以通过以下方式进行比较:

$d1 = new DateTime('2008-08-03 14:52:10');
$d2 = new DateTime('2008-01-03 11:11:10');
var_dump($d1 == $d2);
var_dump($d1 > $d2);
var_dump($d1 < $d2);

直接日期时间比较不会失败。你可以做到。

时间戳比较会更快,但我不认为在php应用程序中会有这样的性能微小改进,而且你必须考虑2030错误。

我更喜欢比较"自Unix大纪元以来的秒数(1970年1月1日00:00:00 GMT("。当然,这只适用于1970年以后的日期。

假设$date1和$date2是要比较的两个日期变量:

if (date("U",$date1) > date("U",$date2)) {
  // $date1 is more recent than $date2
} else {
  // $date1 is older than (or equal to) $date2
}
strtotime($curdate) < strtotime($start_datetime)

strtotime((返回一个int值,表示自1970年1月1日以来经过的秒数这意味着,如果$curdate日期为"2011-01-01 12:00:00",$start-datetime为"2011-1-01 12:00:01",那么$start-datatime大于$curdate,因为strtotime为$start-ddatetime返回一个整数,该整数恰好比$curdate大一。

相关内容

  • 没有找到相关文章

最新更新