2016-07-05 9 views
0

У меня есть эта строка кода:дата Php добавить один день из информации базы данных

<?= date('F dS, Y',$user_info['date_of_birth']) ?> 

Он получает UniX дату birtday для каждого пользователя и преобразует его в нормальный день. Единственная проблема заключается в том, что она будет показана на один день раньше. Например, дата unix в базе данных - 11 мая 1990 года. В представлении это будет выводиться, 10 мая 1990 года. Вы знаете, как исправить эту проблему?

Заранее спасибо

+2

Я бы посмотреть на проблемы часовых поясов. – chris85

+0

Возможно, это проблема. Вы знаете, как я могу добавить + один день в строку кода выше? –

+0

Не делайте этого. Устраните проблему, чтобы ваши часовые пояса совпали. – chris85

ответ

0

Чтобы явно ответить на ваш вопрос, вы можете сделать следующее:

<?=date('F dS, Y',($user_info['date_of_birth'] + 86400))?> 

Где 86400 это количество секунд в день.


Однако, как и другие, вы можете и должны синхронизировать базу данных и Php с UTC/GMT.

Для Php часового пояса, выполните следующие действия в верхней части ваших скриптов:

date_default_timezone_set('UTC'); 

Для SQL, которая зависит от базы данных, которую вы используете (я не верю, что вы указали базу данных, которую вы используете).

+0

Спасибо, что работает отлично. И сейчас я посмотрю на часы! –

0

Проверка в синхронизации ваших данных MySQL и PHP часовых поясов. Проверьте этот подобный вопрос/ответ:

Set timezone in PHP and MySQL

+0

Спасибо! для информации :) Но знаете ли вы, как добавить +1 день в строку кода выше? –

+0

Попробуйте что-нибудь вроде: date ('F dS, Y', strtotime ($ user_info ['date_of_birth']. '+1 день')). – Nick

+0

Я согласен с Крисом, вы, вероятно, должны просто предпринять шаги для выравнивания часовых поясов, чтобы вы не сталкивались с подобными проблемами в другом месте приложения. – Nick

0

Возможно, что на вашем сервере неправильное время. Является ли вы accesse к ней оболочку, вы можете проверить его date командой:

[[email protected] ~]$ date 
Tue Jul 5 04:17:00 UTC 2016 

если нет, то вы, вероятно, придется сделать, как этот:

define('TIMEZONE_OFFSET', 86400); 
<?=date('F dS, Y',($user_info['date_of_birth'] + TIMEZONE_OFFSET))?> 

Опять же, если у вас есть доступ к тузд проверки консоли его настройки часового пояса.

set-timezone-in-php-and-mysql

также установить вручную Php defaulte часовой пояс:

date_default_timezone_set('UTC');