Только добавить к предыдущим ответам: можно пойти вне предела на 2 ГБ на системы, загруженные с/3Gb [и дополнительно userva] флаги начальной загрузки.
MySQL: UTC_TIMESTAMP ()
Возвращает текущую дату и время в формате UTC. как значение в формате "ГГГГ-ММ-ДД ЧЧ: ММ: СС" или ГГГГММДДЧЧММСС.уууууу, в зависимости от того, является ли функция используется в строковом или числовом контексте
PHP: gmdate ()
Также PHP date_default_timezone_set ()
используется в PHP для установки текущего часового пояса для скрипта. Вы можете установить его в часовой пояс клиента, чтобы все функции форматирования возвращали время в его местном времени.
По правде говоря, мне было трудно заставить это работать, и я всегда натыкался на некоторые проблемы. Например. информация о времени, возвращаемая MySQL, не форматируется как 'UTC', поэтому strtotime преобразует ее в местное время, если вы не будете осторожны. Мне любопытно узнать, есть ли у кого-нибудь надежное решение этой проблемы, которое не ломается, когда даты пересекают границы носителя (HTTP-> PHP-> MySQL и MySQL-> PHP-> HTTP) с учетом XML и RSS / Atom.
NOW ()
дает вам время (включая смещение часового пояса) системы, в которой работает ваша база данных. Чтобы получить дату / время в формате UTC, вы должны использовать UTC_TIMESTAMP ()
, как описано в Справочном руководстве MySQL .
Я бы посоветовал вставить дату в часовом поясе UTC. Это избавит вас от головной боли в будущем, связанной с проблемами перехода на летнее время.
INSERT INTO abc_table (registrationtime) VALUES (UTC_TIMESTAMP())
Когда я запрашиваю свои данные, я использую следующий сценарий PHP:
<?php
while($row = mysql_fetch_array($registration)) {
$dt_obj = new DateTime($row['message_sent_timestamp'] ." UTC");
$dt_obj->setTimezone(new DateTimeZone('Europe/Istanbul'));
echo $formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s');
}
?>
Вы можете заменить значение DateTimeZone
одним из доступно Часовые пояса PHP .