2013-09-13 3 views
2

Кто-нибудь знает метод на PHP, где я могу проверить, что date_default_timezone_set() был вызван в предыдущем коде?Проверьте PHP, если date_default_timezone_set() был вызван

Я могу проверить, установлен ли часовой пояс в php.ini, вызывая ini_set(), но когда я использую date_default_timezone_get(), система либо угадывает время для меня, либо возвращает мне установленное время, и я не вижу, как различать два ,

Когда часовой пояс установлен в php.ini, мне не нужно запускать date_default_timezone_set(). Когда он не установлен в php.ini, некоторые предыдущие коды могут установить дату с использованием date_default_timezone_set(). В этом случае снова не нужно снова устанавливать часовой пояс. Но когда часовой пояс не установлен, необходимо установить его. Проблема в том, что date_default_timezone_get() не возвращает пустого значения в этом случае, но - в зависимости от версии PHP - либо «UTC», либо локального часового пояса сервера.

ответ

0

Обратите внимание, что вызов date_default_timezone_set() не будет влиять на глобальные (.ini) настройки, так что вы будете иметь возможность проверить, что с помощью функции ini_get():

if(date_default_timezone_get()!=ini_get('date.timezone')) 
{ 
    //date_default_timezone_set() was used 
} 

, но, если вы будете использовать ini_set() - это не будет (если я правильно понял, вы описали эту проблему в своем вопросе), поскольку она изменит настройку ini для текущего экземпляра сценария (но, из-за причины, а не самого ini-файла). Так что, я думаю, вы не должны использовать ini_set() затем, если вы хотите отличаться, используя date_default_timezone_set()

редактировать: если ваш date.timezone не установлен в php.ini, то вы можете использовать ini_set() при запуске приложения (так что используйте его только один раз) - чтобы установить эту настройку.

+0

Этот код всегда будет возвращать true, если дата не установлена ​​в php.ini, независимо от предыдущих вызовов date_default_timezone_set(). – Matijs

+0

Да. Так в вашем случае это не установлено? (то есть в php.ini)? –

+0

На некоторых системах он установлен, на других - нет. :) – Matijs

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