PHP Datetime Ошибка - PullRequest
       2

PHP Datetime Ошибка

0 голосов
/ 03 августа 2011

У меня проблема с функцией php date ().

Когда я сохраняю дату в базе данных mysql, часы показывают на 4 часа меньше моего текущего времени.

Мой php код ниже: $add_date = date("Y-m-d H:i:s");

Экономит время в базе данных как

.

2011-08-03 07: 51: 26

Но это должно показать

2011-08-03 13: 22: 26

Может кто-нибудь сказать мне, как это исправить

Спасибо

Ответы [ 4 ]

3 голосов
/ 03 августа 2011

Вы должны установить действительный часовой пояс - кажется, у вас нет соответствующего часового пояса, настроенного в среде php для вашего местоположения.

Проверьте

http://www.php.net/manual/en/function.date-default-timezone-set.php

Это должно дать вам подсказку, как установить правильный часовой пояс в php.

2 голосов
/ 04 августа 2011

@ Mujahid Если напечатанное время и сохраненное время совпадают, это, вероятно, означает, что ваш сервер находится не в том же часовом поясе, что и вы.С учетом вышесказанного вы должны вручную установить часовой пояс по умолчанию для вашего PHP-скрипта в верхней части файла или получить DateTime, явно указав свой часовой пояс.Вот код:

$dateTime = new DateTime("now", new DateTimeZone('America/Los_Angeles'));
$add_date = $dateTime->format("Y-m-d H:i:s");
echo $add_date;

Вот список часовых поясов, которые поддерживает PHP, просто найдите свой и замените America / Los_Angeles на него.

http://php.net/manual/en/timezones.php

Вот хорошее руководство по PHP DateTime и DateTimeZone ...

http://ditio.net/2008/06/03/php-datetime-and-datetimezone-tutorial/

Надеюсь, это поможет.Удачи.

0 голосов
/ 04 августа 2011

это добавит время размещенного сервера, а не локальное время $add_date = date("Y-m-d H:i:s");

используйте strtotime () для добавления часов и минут

$newdate = date("Y-m-d H:i:s",strtotime('+ 5 hours 30 minutes'.$row['db_date']));

0 голосов
/ 03 августа 2011

Сделать настройку часового пояса сервера MySQL и веб-сервера одинаковыми.

...