在PHP 5.3中将DateTime对象与另一个对象进行比较

时间:2011-12-10 00:17:50

标签: php datetime compare

好的,所以我正在制作一款基于文字的在线游戏,现在我已经完成了一段时间的完成:

function....

    // I can't get this script to execute when I know the time has passed.

    $now = new DateTime("now", new DateTimeZone('UTC'));
    $row_date = new DateTime($row["due_date"], new DateTimeZone('UTC'));

    if ($row_date->format('Y-m-d H:i:s') <= $now->format('Y-m-d H:i:s')) 
    {
        mysql_query(".....")VALUES ("....")or die(mysql_error());
        mysql_query("DELETE FROM ......")or die(mysql_error());
    }
    else 
    {
        // The time has not come yet.
    }

此代码将使用jQuery的setInterval每10秒执行一次。

3 个答案:

答案 0 :(得分:11)

DateTime可比较

if ($row_date <= new DateTime) { /* Do something */ }

答案 1 :(得分:1)

将其转换为unix时间戳。适合您的任何需求。 您可以使用时间戳轻松地对时间进行排序,并找出最先出现的事件。

$ts=strtotime($date);

答案 2 :(得分:1)

您可以避免转换为DateTime类并使用seconds since Epoch值进行任何日期比较。你的代码是这样的:

date_default_timezone_set('UTC');
$row_date = strtotime($row["due_date"]);
if ($row_date <= time()) { // The time has come
    mysql_query(".....") VALUES ("....") or die(mysql_error());
    mysql_query("DELETE FROM ......") or die(mysql_error());
}
else {
    // The time has not come yet.
}