2016-02-08 2 views
0

У меня есть строка даты, как: 2016-02-12 19:30:00Сравните Дата BST с UTC + 1 дня

Эта дата находится в BST часовом поясе, и мне нужно, чтобы сравнить эту дату с датой сегодня. Я французский, поэтому это UTC + 1.

Какое решение? Если я добавлю час на мою дату BST, это правильно? Мне нужно преобразовать BST to UTC + 1, или UTC + 1 to BST?

Сейчас я получить сегодня, как: $today = date("Y-m-d H:i:s");, и я сравниваю мои две даты, как:

if(date('Y-m-d H:i:s', strtotime($myBstDate)) >= $today) 

Для меня это не так, есть смещение одного часа.

Каков правильный путь? Благодаря !

+0

Всегда старайтесь, чтобы все было в UTC, затем работайте с ним и конвертируйте обратно при необходимости .. Также что не так? '$ today' был определен в другое время, чем' $ myBstDate'? Каков ожидаемый результат ? – Pogrindis

+0

Потому что на день 2016-02-12 19:30:00 в BST для меня это не 19:30:00, а 20:30:00 –

+0

Я предлагаю вам придерживаться 'gmdate', что будет держать вещи в GMT для вас .. Сделать жизнь немного проще. http://php.net/manual/en/function.gmdate.php Также не бойтесь использовать метод setTimeZone: http://php.net/manual/en/datetime.settimezone.php – Pogrindis

ответ

0

Функции устаревшей даты не подходят для математики даты с информацией о часовом поясе. Это довольно просто, но если вы используете объекты:

$date = new DateTime('2016-02-12 19:30:00 BST'); 
if ($date>=new DateTime) { 
}