是否有更多正确的方法来比较当前日期和截止日期



是否有更多正确的方法来比较当前日期和截止日期?

date_default_timezone_set('Asia/Jakarta');
$deadline = date('2016-04-26 23:59:59');
$deadline = strtotime($deadline);
$now = strtotime("now");
if ($now > $deadline) {
    echo 'Deadline has passed.';
} elseif ($now === $deadline) {
    echo 'The same time.';
} else {
    echo 'You have time';
}

这是比较当前日期和截止日期的正确方法吗?

IMO ,您应该使用 DateTime 类,即:

<?php
date_default_timezone_set('Asia/Jakarta');
$deadLine = new DateTime('2016-04-26 23:59:59');
$deadLine->format("Y-m-d H:i:s");
$now = new DateTime();
if ($now  > $deadLine ) {
    echo 'Deadline has passed.';
} elseif ($now  == $deadLine) {
    echo 'Same time';
} else {
   $interval = $now->diff($deadLine);
   echo 'You have ' . $interval->format('%R%a days');
}

Ideone 演示

您给出的代码应该按预期工作,但样式有些"旧"。"现代"版本将使用DateTime系列对象。

$tz = new DateTimezone('Asia/Jakarta');
$deadline = new DateTime('2016-04-26 23:59:59', $tz);
$now = new DateTime('now');
if ($now > $deadline) {
    echo 'Deadline has passed.';
} elseif ($now === $deadline) {
    echo 'The same time.';
} else {
    echo 'You have time';
}

此方法的一个特定优点是不必全局修改默认时区。

最新更新