2013-11-15 3 views
0

Im пытается захватить локальное время и сохранить его в таблице mysql. Я прочитал «PHP руководство», который говорит:Как захватить локальное время и сохранить его в таблице mysql?

$today = date("H:i:s"); // the result would be something like 17:16:18 

Но когда я пытаюсь это, результат 00:00:00

Так что я попытался

$today = date('Y/m/d'); 

И результат был бы быть правильной сегодняшней датой.

Если я иду, чтобы проверить, что хранилось на MySQL я вижу это:

2013-11-14 00:00:00 

Таким образом, ее захват дату, но не время. Что я делаю не так? Как я могу записать свое местное время?

+0

Местное кому? Php возвращает время, основанное на времени и часовом поясе хоста в php.ini. mysql использует свой часовой пояс conig. Вам лучше сохранить время в UTC и настроить значение на целевой tz. – Anthony

+0

@ Энтони, пожалуйста, скажите мне, как мои глаза уже краснеют от поиска в Интернете и не могут найти дорогу. – azirion

+0

http://www.php.net/manual/en/datetime.settimezone.php – Anthony

ответ

1

Просто используйте встроенные функции времени и времени MySQL. NOW(), amongst others, будет хорошо работать здесь:

INSERT INTO tablename (datecol) VALUES (NOW()); 
+0

Спасибо, сработало. Но это не местное время. Я попытался изменить часовой пояс, используя date_default_timezone_set, но не изменил его. Так что я застрял с часовым поясом сервера. Вот почему я избегал использования значения timestamp по умолчанию: -s – azirion

1

Наконец у меня есть ответ. Благодаря @Anthony я смог исследовать правильное направление.

Так что ответ я смотрел из вас, ребята, было:

Сначала установите нужный часовой пояс:

date_default_timezone_set('America/Costa_Rica'); 

А затем просто захватить фактическое время

$actualtime=date("H:i", time()); 
+1

И еще одно: чтобы сохранить это на mysql, если поле является полем DateTime, используйте дату («Ymd H: i: s», time()). – azirion

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