PHP: как читать текущую дату / время с сервера, а не из php.ini

Вот моя проблема:

echo date('Ymd H:i:s'); echo date('Ymd H:i:s', mktime()); echo exec('date'); 

Выход:

 2012-03-21 08:45:51 2012-03-21 08:45:51 Wed Mar 21 10:45:51 EDT 2012 

Время сервера отключено на 2 часа с момента возврата php date (); или любую другую функцию даты / времени php. Это происходит потому, что время сервера установлено на EST и PHP.INI date.timezone = "America / Denver"

Мне нужно синхронизировать эти два, используя date_default_timezone_set, но я не знаю заранее, в чем разница.

Есть ли другой способ получить время локального сервера помимо вызова exec?

UPD: Я знаю, что настройка php.ini неверна и я могу ее изменить. Проблема в том, что этот скрипт будет работать, и никто не знает, какие серверы. Я не могу перейти к каждому из них и исправить файл php.ini. Я также заранее не знаю, какой часовой пояс будет на этих серверах. Мне нужно динамическое решение, которое будет работать повсюду.

вы можете изменить дату и время даты и распечатать дату

 ini_set('date.timezone', 'America/Los_Angeles'); 
 Change value of date.timezone from php.ini [Date] and restart your server. You can get your date.timezone value form- http://au.php.net/manual/en/timezones.php For Bangladesh I set in my php.ini [Date] date.timezone = Asia/Dhaka You get your php.ini in C:\xampp\php address for XAMP server and Windows. 

ИЛИ

некоторые хосты дают вам возможность редактировать php.ini
искать php config в cpanel

На * nix вы можете использовать параметры форматирования на date чтобы получить то, что вам нужно:

  • date +%z – часовой пояс (hhmm)
  • date +%:z – часовой пояс (чч: мм)
  • date +%Z – сокращение от часовой пояс (например, «EDT»)

Выполнение системного вызова (например, echo exec('date +%z'); ) будет обходить любые настройки INI в соответствии с date_default_timezone_get . Обратите внимание, что эта функция выдает E_WARNING, если она читается из системного времени, и действительно из PHP 5.4 она даже не позволяет читать из нее – в частности, потому что на нее нельзя положиться.

Чтобы быть последовательным, независимо от настроек сервера, вы должны использовать UTC в своем приложении. Для удобства использования GMT достаточно близко к UTC для большинства целей, поэтому вы можете использовать gmdate() .