разность timestamp

IgoX

Новичок
разность timestamp

Добрый день.
Не могу понять что делаю не так. Я из mssql вытаскиваю даты и хочу найти их разницу.
Почему после конвертации дат в timestamp и деления на 86400 я получаю дробное число если и одна и другая дата имеет одинаковое время 12:00AM и некоторые даты при делении равны целым числам а некоторые дробным.
Вариант делать разницу в SQL не предлагайте.

PHP:
$secInDay=86400;
.....
function getTD($start, $end) {
 global $secInDay;
 $delta=((strtotime($end)-strtotime($start))/$secInDay);
 if($delta<=0)
    return "";
 echo $end."(".strtotime($end).")-".$start."(".strtotime($start).")=".$delta."<br>";
 return str_repeat ("<td>&nbsp;".$delta."</td>", $delta);

}
Результат:
Nov 07 2009 12:00AM(1257541200)-Nov 01 2009 12:00AM(1257022800)=6
Oct 13 2009 12:00AM(1255377600)-Sep 30 2009 12:00AM(1254254400)=13
Oct 31 2009 12:00AM(1256936400)-Oct 20 2009 12:00AM(1255982400)=11.041666666667
Oct 14 2009 12:00AM(1255464000)-Sep 30 2009 12:00AM(1254254400)=14
Oct 31 2009 12:00AM(1256936400)-Oct 21 2009 12:00AM(1256068800)=10.041666666667
Oct 15 2009 12:00AM(1255550400)-Sep 30 2009 12:00AM(1254254400)=15
Nov 07 2009 12:00AM(1257541200)-Oct 22 2009 12:00AM(1256155200)=16.041666666667
Sep 28 2009 12:00AM(1254081600)-Sep 23 2009 12:00AM(1253649600)=5

Добавлю.
Видимо я её(strtotime) как-то неправильно использую так как даже вот такой пример меня убивает:
PHP:
function drawTable($arr, $dateStart, $dateEnd) {
 global $secInDay;
 $dateStart=strtotime($dateStart);
 $dateEnd=strtotime($dateEnd);//+$secInDay;
 $table="<table border=1 width=100%><tr><th>&nbsp;</th>";
 while($dateStart<=$dateEnd) {
    $table.="<th>".date("d.m.Y",$dateStart)."</th>";
    $dateStart=$dateStart+$secInDay;
 }
....
Результат:
Начало дат начинается с 23.09.09 и после добавления на 25.10.2009 числе получается самое интересное таких чисел 2.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: IgoX
С переходом на зимнее понял, а почему дробные получаются?
"Всё понял в паровозе, не понял куда лошади цепляются"
 

IgoX

Новичок
Автор оригинала: Sad Spirit
"Всё понял в паровозе, не понял куда лошади цепляются"
описать дополнительными условиями можно конечно переходы времени, но как то некрасиво, может можно как-то получить разницу в днях. как я понимаю тогда нельзя пользоваться timestamp, а что посоветуете?
 

Beavis

Banned
в php 5.3 появилась DateTime::diff
а пока можешь просто округлять результат))
 
Сверху