PHP.COM.UA - учимся вместе!!!

Блоги на php.com.ua

Сьогодні: п'ятниця вересня 03, 2010 7:27 am
Здесь мы хотим узнать, что ты уже сам сделал для решения своей проблемы, чтобы помочь тебе. Если ты ничего не попытался сделать сам, мы автоматически хотим помочь тебе намного меньше.

Часовий пояс UTC + 2 годин




Створити нову тему Відповісти  [ 3 повідомлень ] 
Автор Повідомлення
 Тема повідомлення: Странный глюк с датой - 1 час содержит 7200(!) секунд
ПовідомленняДодано: неділя жовтня 05, 2008 3:36 pm 
Офлайн

З нами з: неділя жовтня 05, 2008 2:09 pm
Повідомлення: 1
При разработке календаря для раздела новостей наткнулся на ОЧЕНЬ странный глюк. 26 октября повторялось дважды. Покопавшись, я нашел причину - пхп думает что между 26 и 27 октября проходит не 86400 сек, а 90000 !
Разница возникает между 2 и 3 часами ночи. пхп думает что этот час длиться не 3600 а 7200 секунд. Подобный глюк происходит в октябре ЛЮБОГО года, только с другим числом, например в 2009м - 25е.

Проверял на 3х серверах с разными операционками: FreeBSD, FC4, Red Hat Enterprise

Может кто сталкивался с глюком и знает как его решить ? Или посоветуйте более правильный способ для сложения дат ? Я получаю следующий день прибавлением к timestamp 86400


 
 Профіль E-mail  
 
 Тема повідомлення: Re: Странный глюк с датой - 1 час содержит 7200(!) секунд
ПовідомленняДодано: неділя жовтня 05, 2008 7:05 pm 
Офлайн

З нами з: четвер липня 15, 2006 4:16 pm
Повідомлення: 1066
Звідки: Бобруйск
Вся справа в DST.
Код:
<?php
$day1 = mktime(2, 59, 0, 10, 26, 2008);
$day2 = mktime(3, 0, 0, 10, 26, 2008);

echo ($day2 - $day1)."\n\n";

$day3 = mktime(2, 59, 0, 10, 26, 2008, 1);
$day4 = mktime(3, 0, 0, 10, 26, 2008, 1);

echo ($day4 - $day3);

видасть
Код:
3660

60

_________________
Если программе нечего сказать, пусть лучше молчит
sotomajor.org.ua - мой блог о веб-разработке


 
 Профіль  
 
 Тема повідомлення: Re: Странный глюк с датой - 1 час содержит 7200(!) секунд
ПовідомленняДодано: середа жовтня 08, 2008 3:13 pm 
Офлайн

З нами з: вівторок грудня 14, 2004 5:33 pm
Повідомлення: 1066
CyberAdmin писав (ла):
Или посоветуйте более правильный способ для сложения дат ? Я получаю следующий день прибавлением к timestamp 86400


Выдержка из мана

Код:
<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>


правильнее чем прибавлять секунды

_________________
http://webmaniacs.org.ua/ Веб-приложения от профессионалов
http://velocity-framework.org.ua MVC фреймворк для построения высокопроизводительных сайтов


 
 Профіль  
 
Відображати повідомлення за:  Сортувати за  
Створити нову тему Відповісти  [ 3 повідомлень ] 

Часовий пояс UTC + 2 годин


Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 3 гостей


Ви не можете створювати нові теми у цьому форумі
Ви не можете відповідати на теми у цьому форумі
Ви не можете редагувати ваші повідомлення у цьому форумі
Ви не можете видаляти ваші повідомлення у цьому форумі

Знайти:
Вперед:  

Powered by phpBB © 2002, 2006 phpBB Group
Український переклад © 2005-2007 Сергій Новосад
[ Time : 0.118s | 11 Queries | GZIP : On ]