我想做类似的事情:
$time = time();
//Store the time in the dabase
//Some time later, say three hours this code runs
// so if your time() was 2pm its now 5pm when this statement
// is run.
if($time < 4 hours){
// do something.
}
但我不确定最干净的方法是什么。
OOP 风格
$start = new DateTime;
// Do something
if ($start < new DateTime('-4 hours')) {
// Do something different
}
非OOP方式也很简单
$start = time();
// Do something
if ($start < strtotime('-4 hours')) {
// Do something different
}
time() 将以秒为单位返回 php 时间。当您的第二个代码块运行时,您想再次检查 time(),因此您应该执行以下操作:
$timeNow = time();
if($savedTime < $timeNow-14400){
// do something
}
其中 14400 是以秒为单位的 4 小时 (60*60*4 == 14400)。当然,可能没有理由将 time() 设置为变量,但以防万一。