我在比较日期/时间时遇到了一些问题。
我有一个正在工作的代码,它突然停止了工作。现在我对它做了一些更改,但由于某些原因,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) )