检查时间戳是否超过1小时不工作


Check if Timetstamp is older than 1 hour not working?

不知道为什么,但这个if语句不工作。我哪里做错了?

$timestamp = $order->datetime;
if ($timestamp >= strtotime("-1 hour")) {
    echo "PULL FROM DB!";
} else {
    echo "PULL FROM API";
}

谢谢

您正在尝试将日期字符串与时间戳进行比较。你在if语句中实际比较的内容如下:

if("2015-10-16 08:21:11" >= 1444987642){
 echo "PULL FROM DB!";
} else {
 echo "PULL FROM API";
}

这不是你想要的。在进行比较之前,需要将日期字符串转换为时间戳。试试这个:

$dateString = $order->datetime;
$timestamp = strtotime($dateString);
if ($timestamp >= strtotime("-1 hour")) {
    echo "PULL FROM DB!";
} else {
    echo "PULL FROM API";
}
关键部分是将日期字符串转换为时间戳:

$timestamp = strtotime($dateString);

我试过了

$timestamp = strtotime("now");
if ($timestamp >= strtotime("-1 hour")) {
    echo "PULL FROM DB!";
} else {
    echo "PULL FROM API";
}

结果:PULL FROM DB!和

$timestamp = strtotime("now");
if ($timestamp >= strtotime("1 hour")) {
    echo "PULL FROM DB!";
} else {
    echo "PULL FROM API";
}

RESULT: PULL FROM API

请检查传入的值

$timestamp = $order->datetime;