Witam.
Czytalem juz mase postow na tym forum, przesiedzialem troche w manualu, ale na rozwiazanie swojego problemu nie natrafilem smile.gif

Zadanie: roznica 2 dat i godzin.
Problem: Kiedy roznica jest mala date poczatku (starsza) traktuje jako wartosc wieksza (wynik strtotime()) niz date terazniejsza.
Dla pozniejszych roznic liczy ok.

Skrypt:
  1. public static function timeDiff($date1, $date2)
  2. {
  3. $date1 = is_int($date1) ? $date1 : strtotime($date1, time());
  4. $date2 = is_int($date2) ? $date2 : strtotime($date2, time());
  5.  
  6. if($date1 !== -1 && $date1 !== -1)
  7. {
  8. if($date2 >= $date1)
  9. {
  10. $diff = ($date2 - $date1);
  11.  
  12. if ($days = intval(floor($diff / 86400))) $diff %= 86400;
  13. if ($hours = intval(floor($diff / 3600))) $diff %= 3600;
  14. if ($minutes = intval(floor($diff / 60))) $diff %= 60;
  15.  
  16. return array($days, $hours, $minutes, intval($diff));
  17. }
  18. else
  19. {
  20. return false;
  21. }
  22. }
  23. return false;
  24. }


na przykladu: strtotime dla daty terazniejszej daje 1289678427, a dla wczesniejszej 1289681640 ... przez co wychodza mi liczby ujemne i funkcja zwraca false.
Jest jakis sposob na strtotime aby liczylo ok ?

Z gory dzieki ;p

-------------------------------
Problem rozwiazany. Gdzies w pliku rozruchowym mialem :
  1. date_default_timezone_set('UTC');

po skasowaniu tego juz wszystko smiga smile.gif