Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > MySQL
Перезагрузить страницу Который час, если timestamp равен 0
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
radistao radistao вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.05.2008
По умолчанию Который час, если timestamp равен 0 - 15.09.2009, 23:41

Добавляю в поле TIMESTAMP даты. При этом заметил, что разница при добавлении средствами My_SQL и PHP с реальными секундами составляет 3 часа (т.е. FROM_UNIXTIME( 0 ) = '1970-01-01 03:00:00'). При этом, UNIX_TIMESTAMP('1970-01-01 03:00:00')=0 (и равно 0 для любого времени, меньше 03:00:00)
Ради интереса попробовал
Код:
FROM_UNIXTIME(UNIX_TIMESTAMP('1970-01-01 00:00:00'))
и получил '1970-01-01 03:00:00'

этот эффект одинаковен на локальном сервере и на хостинге

В чем прикол?
Ответить с цитированием
  (#2 (permalink)) Старый
radistao radistao вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.05.2008
По умолчанию 15.09.2009, 23:52

интересны факт: Гугл по запросу "1970-01-01 03:00:00" выдал огромное количество страниц, в которых
Цитата:
Tagged date : UTC 1970-01-01 03:00:00
Т.е. эта проблема наблюдается во многих местах, где timestamp был равен 0.

Второй интересны факт: PHP функция
Код:
mktime(0, 0, 0, 1, 1, 1970);
выдает результат
Цитата:
-10800
, т.е. минус три часа
Ответить с цитированием
  (#3 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 16.09.2009, 00:33

Значит, кто-то из них вносит поправку на временную зону (TZ)
Ответить с цитированием
  (#4 (permalink)) Старый
SafSerg SafSerg вне форума
Member
 
Сообщений: 86
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.09.2008
По умолчанию 17.09.2009, 04:34

Цитата:
Добавляю в поле TIMESTAMP даты. При этом заметил, что разница при добавлении средствами My_SQL и PHP с реальными секундами составляет 3 часа (т.е. FROM_UNIXTIME( 0 ) = '1970-01-01 03:00:00'). При этом, UNIX_TIMESTAMP('1970-01-01 03:00:00')=0 (и равно 0 для любого времени, меньше 03:00:00)
Ради интереса попробовал
<div class='codetop'>Код PHP
<div class='codemain'>FROM_UNIXTIME(UNIX_TIMESTAMP('1970-01-01 00:00:00'))[/code]
и получил '1970-01-01 03:00:00'

этот эффект одинаковен на локальном сервере и на хостинге

В чем прикол?[/quote]
А если допустим 1070-01-01 02:00:00 то так и запишет
Ответить с цитированием
  (#5 (permalink)) Старый
radistao radistao вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.05.2008
По умолчанию 17.09.2009, 21:40

Разобрался.
Цитата:
Который час, если timestamp равен 0?
Правильный ответ: 0 часов по Гринвичу!
Оказывается, mySQL в функции FROM_UNIXTIME учитывает часовой пояс сервера и, возможно, летне-зимнее время. Таким образом, когда timestamp=0, то по Гринвичу 0 часов, а по моему поясу - 3 часа (летнее время).

Тема закрыта.
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Message.wParam равен VK_BACKSPACE: клавиша, которую не жал, порождает сообщение imported_malor Delphi 2 12.08.2011 13:29
Построить вектор, каждый элемент которого равен наибольшему количеству равных элемент abakuz Delphi 1 29.05.2011 01:02
Код, который убивает компилятор... Шуня Pascal 2 27.05.2011 11:30
Чему равен угол, если два смежных с ним угла составляют в сумме заданное число градус Shhh Haskell 4 19.05.2011 20:20
какому из phenom2 равен по производительности atlon 2 x3 425 Дамир92 Любые вопросы от новичков 1 07.02.2011 00:47
Чему получается равен vdiscret после глюка Odin_KG Visual C++ 19 27.07.2009 03:56
Как получить время в формате Unix TimeStamp pinpon Delphi 2 18.09.2006 18:37
Почему один байт равен 8 бит Pchelka Вопросы начинающих программистов 2 31.01.2006 16:40
Код, который должен преобразовать RGB в GRAY st.andrew Delphi 9 18.05.2005 06:36
TIMESTAMP Fl@sh PHP 5 03.07.2004 17:24
Выборка данных в таблице в поле TS типа TimeStamp Anonymous C++ Builder 0 25.01.2004 17:03
Как в SQL запросе совместить Time и Timestamp Anonymous Delphi 0 28.04.2003 10:58



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов