Intereting Posts
правильные заголовки PHP для загрузки pdf-файлов Как PHP отслеживает созданные объекты? Автоматически удалять файлы журнала в PHP Как перенаправить перенаправление одной и той же страницы зависит от значения Как преобразовать цвет строки в шестнадцатеричный код или значение RGB? Лучший способ получить доступ к Exchange с помощью PHP? Как получить имена и аббревиатуры часового пояса в PHP? почему нам все еще нужен родительский конструктор, когда класс контроллера расширяет родительский контроллер? Как создать простой рейтинг звезд с помощью span или ul li с помощью CSS и jQuery? Сохранение входных данных в текстовом файле Преобразование одного формата даты в другой в PHP как сделать печатную версию веб-страницы? Как создать простой модуль Hello World в Magento? Как определить глобальную переменную для Twig Сессия PHP уничтожается после изменения пользовательского агента

получить время сервера в php-часовом поясе

на shell, мое время сервера (простая date в bash): вс 29 августа 10:37:12 EDT 2010

когда я запускаю код php -r "echo date('Ymd H:i:s');" Я получаю: 2010-08-29 10:37:10

но когда я выполняю php-скрипт с echo date('Ymd H:i:s'); Я получаю другое время, поскольку php считает, что часовой пояс UTC (время сервера – EDT).

У моего php.ini-файла нет набора часового пояса, и я бы не хотел ничего менять, поскольку я понятия не имею, какое влияние он повлияет на другие сайты, которые запускаются на этом сервере.

Есть ли простой способ получить время сервера – в часовом поясе, установленном для сервера?

Related of "получить время сервера в php-часовом поясе"

Согласно странице руководства директив php.ini часовой пояс не устанавливается по умолчанию, если вы используете версию до 5.3. Затем, если вы посмотрите на страницу date_default_timezone_get , она использует следующий порядок для получения часового пояса:

 * Reading the timezone set using the date_default_timezone_set() function (if any) * Reading the TZ environment variable (if non empty) (Prior to PHP 5.3.0) * Reading the value of the date.timezone ini option (if set) * Querying the host operating system (if supported and allowed by the OS) 

UTC – это значение по умолчанию, если все из них не работают, поэтому это, вероятно, хорошая отправная точка.

Сервер всегда должен иметь часовой пояс, указанный в файле php.ini . PHP 5.3 даже вызывает уведомления, если это не так, и расширение DateTime генерирует исключения, если вы пытаетесь создать объекты без явного указания часового пояса (с объектом DateTimezone ) или имеющего значение по умолчанию (либо через date.timezone либо date_default_timezone_set ).

По тому, что вы описываете, наиболее вероятными сценариями являются:

  • В двух сценариях используются разные файлы php.ini. В первом случае не указан часовой пояс по умолчанию, поэтому PHP пытается вывести его из общесистемного часового пояса машины.
  • Сценарий (второй) вызывает date_default_timezone_set('UTC') или эквивалент.

Поздно для вечеринки, но если вы хотите установить часовой пояс без редактирования php.ini, вы можете поместить в код php одну из следующих строк:

 date_default_timezone_set('GMT'); date_default_timezone_set('Europe/Zurich'); date_default_timezone_set('America/New_York'); 

Вы пробовали использовать date_default_timezone_set (). Американские часовые пояса можно найти здесь http://www.php.net/manual/en/timezones.america.php