почему дата php и дата unix не совпадают? - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть сервер Centos, и я изменил время на NewYork время по дате cmd.Также я изменяю в php.ini "date.timezone =" America / New_York "" Когда я ввожу дату команды в командной оболочке.Я получаю реальное время в Нью-Йорке.Но когда я делаю

эхо-дату ("Гм: H: i: s");

Время не подходит!Я всегда получаю на 6 часов меньше времени в Нью-Йорке.Пожалуйста помоги?Я уже пытался использовать date_default_timezone_set ('America / New_York');в коде без посторонней помощи.ожидание ответа.Спасибо!Корен или

Ответы [ 5 ]

1 голос
/ 23 ноября 2011

я изменил время на NewYork время по дате cmd

Команда date не предоставляет средства для изменения часового пояса.Вы, вероятно, установили время в нью-йоркском времени, но в качестве часового пояса, в котором оно уже было установлено, в результате серверное время было отключено на шесть часов (странно, оно должно быть на пять, если это UTC).

Установите переменную среды TZ export TZ=America/New_York до , установив время с помощью команды даты.Неправильное время на сервере может привести к серьезным проблемам.

0 голосов
/ 23 ноября 2011

Это звучит как проблема с неправильной настройкой часового пояса на вашем компьютере.

Сначала, чтобы убедиться, что PHP использует правильный часовой пояс, попробуйте следующее, чтобы увидеть.

echo date("Y-m-d H:i:s e");

Это должно дать вам "Америка / Нью-Йорк", если вы правильно установили его в своем сценарии.

Если это так, я бы попробовал процедуру, описанную здесь , чтобы изменить время в вашей системе и посмотреть, работает ли оно.

0 голосов
/ 23 ноября 2011

я изменяю в php.ini "date.timezone =" America / New_York ""

Смотри, это очень распространенная ошибка людей, которые не знакомы с формальной логикой.
Позвольте мне показать вам на небольшом примере:

Предположим, вы просто положили немного денег в свой карман.
Я сталкиваюсь и спрашиваю, есть ли у вас деньги в кармане. Вы говорите "Да".

Но вы не можете сказать это наверняка! Вы можете сказать наверняка только то, что вы положили туда . Но в кармане может быть дыра, или какой-то вор уже взял это, или вы просто перепутали карманы. Итак, сначала вы должны проверить , а потом ответить.

Хотя в реальном мире это ничтожно мало, в программировании такое поведение становится критическим! Вы можете изменить любые настройки, но вы должны проверить, оказали ли ваши действия какое-либо влияние
Может быть проблема перезагрузки apache, неправильный файл ini.file или некоторые настройки времени выполнения, перезаписывающие его.

Tl: др
Всегда проверяйте свои настройки, переменные, данные - если оно действительно содержит ожидаемое значение!
Не полагайтесь на то, что вы его где-то изменили.

0 голосов
/ 23 ноября 2011

Я просто угадаю, но вы перезапустили свой сервер Apache?

0 голосов
/ 23 ноября 2011

Вы можете инициализировать часовой пояс в своем приложении. Что происходит, когда вы делаете это?

date_default_timezone_set('America/New_York');
echo date("Y-m-d H:i:s");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...