Сравните объект DateTime с другим в PHP 5.3 - PullRequest
1 голос
/ 10 декабря 2011

Хорошо, поэтому я делаю онлайн-текстовую игру, и я застрял прямо сейчас с завершением:

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.
    }

Этот код должен выполняться каждые 10 секунд с помощью jQuery setInterval.

Ответы [ 3 ]

11 голосов
/ 10 декабря 2011

DateTime сопоставимо

if ($row_date <= new DateTime) { /* Do something */ }
1 голос
/ 10 декабря 2011

Вы можете избежать преобразования в класс 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.
}
1 голос
/ 10 декабря 2011

Преобразуйте его в метку времени Unix.Идеально подходит для любых ваших потребностей.Вы можете использовать временные метки, чтобы легко сортировать время и выяснить, какое событие наступит раньше.

$ts=strtotime($date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...