Niemand
Новичок
Скрипт расчета времени
Приветствую. у меня такой вопросик, сделал скрипт, который расчитывает дату через заданное кол-во месяцев (дата хранится в UNIX Timestamp). Все вроде работает, но вот глюк откопал, что при пересчете почти одинаковых дат (разница в минутах) он считает по разному.
и вот для сравнения таблицы:
пример 1:
Время: 1186387567 (12:05:36) (Время взято из time() )
(Дата через $i месяцев / кол-во дней в месяц)
06.08.2007 31
06.09.2007 30
06.10.2007 31
06.11.2007 30
06.12.2007 31
06.01.2008 31
06.02.2008 29
06.03.2008 31
06.04.2008 30
06.05.2008 31
06.06.2008 30
06.07.2008 31
06.08.2008 31
06.09.2008 30
06.10.2008 31
06.11.2008
(Все пересчитывает верно)
и вторая таблица:
1186344000 (11:49:07)
06.08.2007 31
06.09.2007 30
06.10.2007 31
05.11.2007 30
05.12.2007 31
05.01.2008 31
05.02.2008 29
05.03.2008 31
06.04.2008 30
06.05.2008 31
06.06.2008 30
06.07.2008 31
06.08.2008 31
06.09.2008 30
06.10.2008 31
(откуда-то берутся пятерки).
В чем может быть причина?
заранее спасибо за ответ.
Приветствую. у меня такой вопросик, сделал скрипт, который расчитывает дату через заданное кол-во месяцев (дата хранится в UNIX Timestamp). Все вроде работает, но вот глюк откопал, что при пересчете почти одинаковых дат (разница в минутах) он считает по разному.
PHP:
function months_add($timevar, $mons){
echo $timevar."<br>";
$day_length=60*60*24; //Секунд в дне
for($k=1;$k<=$mons;$k++){
$days_in_month=date("t", $timevar); //Дней в актуальном месяце
echo date("d.m.Y", $timevar)." ".$days_in_month."<br>";
$timevar=$timevar + ($day_length*$days_in_month); //Дата через $k месяцев
}
return $timevar;
}
пример 1:
Время: 1186387567 (12:05:36) (Время взято из time() )
(Дата через $i месяцев / кол-во дней в месяц)
06.08.2007 31
06.09.2007 30
06.10.2007 31
06.11.2007 30
06.12.2007 31
06.01.2008 31
06.02.2008 29
06.03.2008 31
06.04.2008 30
06.05.2008 31
06.06.2008 30
06.07.2008 31
06.08.2008 31
06.09.2008 30
06.10.2008 31
06.11.2008
(Все пересчитывает верно)
и вторая таблица:
1186344000 (11:49:07)
06.08.2007 31
06.09.2007 30
06.10.2007 31
05.11.2007 30
05.12.2007 31
05.01.2008 31
05.02.2008 29
05.03.2008 31
06.04.2008 30
06.05.2008 31
06.06.2008 30
06.07.2008 31
06.08.2008 31
06.09.2008 30
06.10.2008 31
(откуда-то берутся пятерки).
В чем может быть причина?
заранее спасибо за ответ.