Cytat(paw-e-l @ 5.10.2009, 23:31:16 )

źródłem tego przesunięcia okazała się jednak pierwsza część kodu (unixtime na dzień). rozwiązałem to tak
działa tak jak powinno choć pewnie nigdy się nie dowiem dlaczego muszę dodawać 7200s żeby było ok.
Cytat(PHP_manual_-_pl.php.net)
Cytat
float floor ( float $value )
Returns the next lowest integer value
by rounding down value if necessary.
chciałeś liczby całkowite to masz ale bez tego co jest po przecinku

- no, a, że dopiero od tej wartości chcesz wrócić do początkowej to brakuje Ci tego po przecinku i:
2*60*60 [2h * 60min * 60s] = 7200s

[do całości - czyli reszty masz 86400-7200=79200s które floor wyrzuci

] - i w sumie na to przybliżenie to jest zależne od pory dnia

Cytat( @ 5.10.2009, 23:31:16 )
@up, round() nie wchodzi w gre gdyż obliczanie numeru dnia w ten sposób w godzinach południowych dawałoby dzień następny
odpowiedź na jedno z pytań już dostałeś, trochu znowu już wypiłem więc nie chce mi się analizować przykładu ale to są podstawowe równania matematyczne - i tak to traktuj a dopiero potem do tego dobieraj funkcje lub w razie potrzeby pisz własne

ps. a po co próbujesz potem $day*86400 skoro chcesz uzyskać wartość $time?? - błąd Ci wskazałem już ale teraz pytanie po co niepotrzebnie obliczasz to co już masz w jednej ze zmiennych??
poza tym obliczasz:
date('G:m j.m.Y', $time)
a niżej date('G:m j.m.Y', $day*86400) i chcesz uzyskać ten sam wynik to może obliczył byś to raz i wrzucił to do jakiejś zmiennej a potem wyświetlał jej wartość?? - tak wiem - wyniki mogą być różne przez to przybliżenie floor - choć tak wiem teraz to "naprawiłeś" [dla mnie to nie jest naprawa problemu - trzeba problem zrozumieć a nie tylko łatać dziury a potem dziurę na dziurze

] okrężną drogą dodając do całości - floor działa tak że jak masz 1,9 to otrzymasz 1