2014-02-14 3 views
0

Как я могу получить текущую дату определенного часового пояса, а затем преобразовать ее в свой часовой пояс? Например:PHP - получить дату по часовому поясу

$timezone = "UTC+1"; // or UTC, UTC-5, UTC+2.... 
$date = date($timezone); 
$date_UTC = convert($date, "UTC"); 

Таким образом, окончательный возврат должен быть чем-то вроде «2014-02-14 08:25:00 pm +00»;

Я играл со многими функциями, но большинство из них используют часовой пояс, например, «Европа/Франция».

Благодаря

+2

Вы знаете, что вы можете _set_ часовой пояс, даже динамически ... правильно? – CBroe

ответ

0

Первые изменения часового пояса с:

date_default_timezone_set('Europe/London'); 

date_default_timezone_set - Устанавливает часовой пояс по умолчанию, используемый всеми функциями дата/время в сценарии

see php.net/

+1

Это плохая идея по конкретной причине в приведенной вами цитате. Он устанавливает часовой пояс для * всех * функций в скрипте. Скорее всего, эта операция должна быть отнесена к определенной функции или набору утверждений. – quickshiftin

+0

Хмм - Имеет смысл! – kn0x

1

Вы можете добиться этого с помощью DateTime класса в сочетании с DateTimeZone класса:

$current_tz_str = date_default_timezone_get(); 
$current_tz = new DateTimeZone($current_tz_str); 
$now = new DateTime('now', $current_tz); 
$offset = $current_tz->getOffset($now); 
0

Вы можете использовать расширение datetime для установки часовых поясов:

$timezone = new DateTimeZone('Europe/Copenhagen'); 
$datetime = new DateTime('now', $timezone); 
echo '<pre>In Copenhagen: ', $datetime->format('r'), '</pre>'; 

$timezone = new DateTimeZone('Europe/Helsinki'); 
$datetime->setTimezone($timezone); 
echo '<pre>In Helsinki: ', $datetime->format('r'), '</pre>'; 

Что бы дать вам что-то вроде:

В Копенгагене: пт, 14 фев 2014 22:01:31 +0100

В Хельсинки: пт, 14 фев 2014 23:01:31 +0200

list of supported timezones.

+1

Кто бы ни проголосовал: Скажите, пожалуйста, что случилось с моим ответом. –

Смежные вопросы