как сохранить текущее местное время в базе данных - PullRequest
1 голос
/ 12 сентября 2009

Я хочу сохранить местное время моих стран (Новая Зеландия) в моей базе данных Я использую php, но я не знаю, как это сделать.

Пожалуйста, наставь меня.

Ответы [ 3 ]

1 голос
/ 12 сентября 2009

Это

  date('O');

даст вам разницу с временем по Гринвичу (GMT) в часах для сервера. Пример: + 0200

Вам необходимо знать смещение GMT ​​вашего часового пояса.

Используйте эти два числа, чтобы определить, насколько далеко сервер находится перед вами или позади вас, а затем используйте strtotime (), чтобы узнать текущее время.

Например, если сервер на 2 часа впереди вас, вы должны использовать

  date("Y-m-d H:i:s", strtotime("-2 hours"));

НТН

JG

0 голосов
/ 12 сентября 2009

Если вы используете поле отметки времени и базу данных MySQL, вы можете просто вызвать CURRENT_TIMESTAMP. Я рекомендую не сохранять данные времени в качестве метки времени Unix, поскольку вы можете использовать функции, относящиеся к дате, в полях даты / метки времени, а также извлекать метки времени Unix из них.

0 голосов
/ 12 сентября 2009

Используйте now () или sysdate () в запросе вставки:

insert into mytable set datetimefield=sysdate()

Просто убедитесь, что время сервера синхронизировано и что оно находится в правильном часовом поясе. В противном случае вам придется сделать несколько дополнительных трюков, чтобы сместить дату / время.

Если время имеет решающее значение, имейте это в виду:

Начиная с MySQL 5.0.13, SYSDATE () возвращает время, в которое это выполняет. это отличается от поведения для NOW (), который возвращает постоянное время, которое указывает время, в которое Заявление стало исполняться. (В пределах сохраненная процедура или триггер, СЕЙЧАС () возвращает время, в которое процедура или вызывающее заявление начали выполнение.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...