如何解决php中的时间数据比较问题
我有一个合同时间格式,比如2020年7月28日14:18:25,我想检查它是否从现在起过期。但我不明白这是正确的。似乎有几分钟的不同 这是密码如何解决php中的时间数据比较问题,php,Php,我有一个合同时间格式,比如2020年7月28日14:18:25,我想检查它是否从现在起过期。但我不明白这是正确的。似乎有几分钟的不同 这是密码 //$now = strtotime(date("m-d-y H:i:s")); $now = time(); $contractDate = strtotime("July 28, 2020 14:18:25"); // check if contract is still on or has ended fr
//$now = strtotime(date("m-d-y H:i:s"));
$now = time();
$contractDate = strtotime("July 28, 2020 14:18:25");
// check if contract is still on or has ended from now
if($now < $contractDate) {
echo "contract is on";
} else {
echo "contract time ended!";
}
/$now=strottime(日期(“m-d-y H:i:s”);
$now=时间();
$contractDate=标准时间(“2020年7月28日14:18:25”);
//检查合同是否仍然有效或从现在起已终止
如果($now<$contractDate){
echo“合同已生效”;
}否则{
回声“合同时间结束!”;
}
由于格式的原因,您无法正确获取它。如果您可以将日期设置为“yyyy-mm-dd”格式,那么它应该可以工作。试试这个:
$now = strtotime(date("y-m-d"));
$now = time();
$contractDate = strtotime("2020-07-28");
if($now < $contractDate) {
echo "contract is on";
} else {
echo "contract time ended!";
}
$now=strottime(日期(“y-m-d”);
$now=时间();
$contractDate=标准时间(“2020-07-28”);
如果($now<$contractDate){
echo“合同已生效”;
}否则{
回声“合同时间结束!”;
}
可能是时区问题(您的time()
被某些人关闭了)
您可以通过在PHP脚本中显式设置时区来解决这个问题。您可以使用date\u default\u timezone\u set():
这是你的工作清单
您可能还想尝试一个调用date\u default\u timezone\u get()
的测试脚本,以查看它的实际设置,以验证这是否确实是问题所在
您还可以尝试使用DateTime
类
$d1 = new DateTime();
$d2 = new DateTime("July 28, 2020 14:18:25");
$diff = $d1->diff($d2);
echo $diff->format('%H:%I:%S');
$d1 = new DateTime();
$d2 = new DateTime("July 28, 2020 14:18:25");
$diff = $d1->diff($d2);
echo $diff->format('%H:%I:%S');