php добавить или вычесть смещение часового пояса - PullRequest
2 голосов
/ 06 марта 2012

У меня есть некоторые даты, сохраненные в gmt в базе данных mysql.
Скажем, смещение часового пояса клиентов было -540;Как бы я исправить datetime из базы данных, чтобы отразить это?Есть ли удобная функция, через которую я могу поставить дату, или мне нужно будет добавить или вычесть соответственно.

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

Возможно, этот фрагмент поможет вам:

$format = 'Y-m-d';
$obj = new DateTime();
$date = date($format, strtotime($obj->format('Y-m-d H:i:s')) - $obj->format('Z'));

См. Также http://www.php.net/manual/en/class.datetime.php для дальнейшего чтения.

3 голосов
/ 06 марта 2012

Поскольку у вас есть элементы данных в формате GMT, вам придется преобразовать их в метки времени, используя strtotime, дополнительную информацию здесь: http://php.net/manual/en/function.strtotime.php Получив метку времени, вы можете вычесть из нее смещение (540 раз по 60 секунд), а затем преобразовать результат в новую строку даты, используя date, дополнительная информация здесь: http://php.net/manual/en/function.date.php

Вот одна версия кода, которая может к этому:

$dbValue = $row['date']; 
$timestamp = strtotime($dbValue) - (540*60);
$result = date("Y-m-d H:i:s", $timestamp);
...