2015-12-18 3 views
2

У меня есть дата события & Время, указанное в моей базе данных, которое сохраняется как временная метка unix PHP. Я пытаюсь проверить, превышает ли сегодняшний день дату и время события.PHP unix timestamp compare

Проблема в том, что я пытаюсь проверить ее с помощью местного времени (America/New_York), но im получает 2 разных часовых пояса. time() показано в EST, и моя база данных отображается в UTC

Есть ли способ проверить правильность?

Мой Дата события из базы данных: 1450447200 (декабрь 18, 2015 2:00 вечера)

Im пытаясь сравнить его с PHP time()

я, возможно, делает это неправильно?

* ОБНОВЛЕНИЕ - ОТВЕТ *

согласно this answer я в конечном итоге делает это:

$utc_str = gmdate("M d Y H:i:s", time()); 
$today = strtotime($utc_str); 

$event_datetime = $Event_timestamp; 
date_default_timezone_set("America/New_York"); 
$utc_str_event = gmdate("M d Y H:i:s", $event_datetime); 
$event_date = strtotime($utc_str_event); 
if($today >= $event_date){ 
    //Do Something 
} 
+2

'time' does * not *" display EST ", если только ваши компьютерные часы полностью не завинчены. – deceze

ответ

-2

Я не знаю, если это правильно, но вы пробовали, используя date_default_timezone_set

+1

'time()' независим от часового пояса – Pr0100

4

Вероятно, у вас, вероятно, неправильная дата на серверах. time() всегда должен возвращать эпоху (эпоха = UTC).

кстати. сохранить дату как int в базе данных, это не самая лучшая практика

+0

Я хорошо знаю - моя проблема в том, что это делается с помощью плагина, и я бы предпочел не связываться с кодом. – Mark