2016-02-11 4 views
1

Я жил в Филиппинах и когда я вставляю дату в свою базу данных, она вставляет менее 13 часов в мою базу данных. Например, наш DateTime здесь 02-11-2016 21-04-00, когда я ввожу, это вставить 02-11-2016 08-04-00Изменить метку времени в mysql

Я уже использовал это:

date_default_timezone_set('Asia/Manila'); 

Но не повезло. Я уже разместил сайт в своем домене.

ответ

3

Это должно быть сделано

date_default_timezone_set('Asia/Manila'); 

Убедитесь, что вы загружаете правильные файлы.

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

1

Если я не ошибаюсь, вы наклеивали функцию php, которая просто установила time_zone для php не для my_sql. mysql имеет глобальную переменную time_zone, которая может быть установлена. Вы должны использовать SET GLOBAL time_zone = timezone; или SET time_zone = timezone;.

Если у вас нет прямого управления вашим сервером БД, в этом случае вы можете передать второй оператор i.e set time_zone=...; в качестве первого заявления.

В качестве альтернативы вы также можете использовать функцию convert_tz для преобразования уже сохраненного значения.

+0

Да, только для php. Где установить GLOBAL time_zone? –

+0

Если у вас есть прямой доступ к файлам конфигурации mysql, это можно установить в my.cnf или my.ini в зависимости от платформы. если не до вызова фактического запроса, вы можете вызвать set time_zone = например $ pdo = new PDO ('mysql: host = localhost; dbname = exampletable', 'exampleuser', 'examplepassw', array (\ PDO :: MYSQL_ATTR_INIT_COMMAND => " SET time_zone = 'Европа/Лондон')); или mysql_query ("SET time_zone = 'Europe/London") –

+0

У меня есть connection.php, и я помещаю mysql_query ("SET time_zone =' +13: 00 '), потому что вся моя страница имеет connection.php, но это не работа –

1

Установленный часовой пояс используется для PHP, поскольку Bimal сказал, вам нужно также проверить время сервера, потому что время - очень чувствительная часть информации, которую вы не хотите пропустить или играть.

Я был в этой ситуации несколько недель назад, есть два способа это исправить:

  • Установите часовой пояс сервера на правильный часовой пояс.
  • Если разница во времени всегда и ТОЧНО 13 часов, использовать этот подход:

    $ New_Time = даты ("Y-м-д H: I: S", StrToTime ('+ 13 часов')).

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

Best of Luck.

+0

. Я уже думал о втором варианте, но для этого потребуется время, потому что есть так много php-файла, что я должен редактировать. Я встречаю крайний срок в нашем проекте. –

+0

Вы можете использовать быстрое исправление, создать файл PHP и сделать его обновлением отметки времени до правильного значения, а затем при отправке нового значения обязательно добавьте через 13 часов после его вставки в базу данных. –

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