如何计算unix时间戳之间的时间差


How to calculate the time difference between unix time stamps?

我在PHP使用 time() 创建时间戳

我有$current_time$purchase_time。我如何确保purchase_time小于当前时间的24小时?

如果它们是UNIX时间戳,那么您可以非常容易地自己计算,因为它们是秒。

$seconds = $current_time - $purchase_time
$hours = floor($seconds/3600);
if ($hours < 24){
    //success
}

由于UNIX时间戳只是秒数,所以只使用差值:

$purchasedToday = $current_time - $purchase_time < 24 * 60 * 60;
if ($purchasedToday) {
  echo 'You just bought the item';
} else {
  echo 'You bought the item some time ago';
}

你可以构造一个DateTime对象,然后使用它的diff()方法来计算$current_time和$purchase_time之间的差值:

$currentTime = new DateTime();
$purchaseTime = new DateTime('2011-10-14 12:34:56');
// Calculate difference:
$difference = $currentTime->diff($purchaseTime);
if ($difference->days >= 1) {
    echo 'More than 24 hours ago.';
}

这比你自己计算时差更可靠,因为这个方法会考虑时区和夏令时。

像这样:

$difference=time() - $last_login;

我使用了这样的代码:

<?php
if(date("U", strtotime("-24  hours", $current_time) > date("U", $purchase_time)) {
    echo "More then 24 hours you purchased this radio";
}
?>

即使时间戳不是unix时间戳也可以。