Вот моя проблема:
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()
.