PHP получить местное время по коду / цифре часового пояса (+1, +2 и т. д.)

Я изо всех сил пытаюсь найти решение по этому поводу, могу ли я в любом случае использовать функцию / плагин php или js/jquery, чтобы получить местное время города или штата на основе его кода часового пояса? Например, допустим, что Рим - это часовой пояс 2

Спасибо большое.

2 ответа

Решение

Пожалуйста, посмотрите на gmstrftime():

<?php
    $offset = 2;
    $timestamp = time() + ( $offset * 60 * 60 );
    echo gmstrftime("%b %d %Y %H:%M:%S", $timestamp) . "\n";
?>

Эта функция форматирует время относительно GMT, поэтому вы можете напрямую использовать смещения часового пояса.

Руководство по PHP здесь - http://php.net/manual/en/function.gmstrftime.php

Но более элегантным решением может быть использование DateTime::setTimezone():

<?php
// From PHP manual 

$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Я бы посоветовал заглянуть в класс DateTime и поддерживаемые часовые пояса в php.

Другие вопросы по тегам