Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak pozbyć się przedziałów czasowych zawartych już w innych
Forum PHP.pl > Forum > Przedszkole
Barton
Cześć,

Mam przykładową tablicę:

  1. 0 =>
  2. array (size=3)
  3. 0 =>
  4. object(DateTime)[833]
  5. public 'date' => string '2013-04-18 09:00:00' (length=19)
  6. public 'timezone_type' => int 3
  7. public 'timezone' => string 'UTC' (length=3)
  8. 1 =>
  9. object(DateTime)[835]
  10. public 'date' => string '2013-04-18 13:00:00' (length=19)
  11. public 'timezone_type' => int 3
  12. public 'timezone' => string 'UTC' (length=3)
  13. 1 =>
  14. array (size=3)
  15. 0 =>
  16. object(DateTime)[827]
  17. public 'date' => string '2013-04-18 09:20:00' (length=19)
  18. public 'timezone_type' => int 3
  19. public 'timezone' => string 'UTC' (length=3)
  20. 1 =>
  21. object(DateTime)[839]
  22. public 'date' => string '2013-04-18 10:27:00' (length=19)
  23. public 'timezone_type' => int 3
  24. public 'timezone' => string 'UTC' (length=3)
  25. 2 =>
  26. array (size=3)
  27. 0 =>
  28. object(DateTime)[804]
  29. public 'date' => string '2013-04-18 12:40:20' (length=19)
  30. public 'timezone_type' => int 3
  31. public 'timezone' => string 'UTC' (length=3)
  32. 1 =>
  33. object(DateTime)[865]
  34. public 'date' => string '2013-04-18 17:00:00' (length=19)
  35. public 'timezone_type' => int 3
  36. public 'timezone' => string 'UTC' (length=3)
  37. 3 =>
  38. array (size=3)
  39. 0 =>
  40. object(DateTime)[834]
  41. public 'date' => string '2013-04-18 14:00:00' (length=19)
  42. public 'timezone_type' => int 3
  43. public 'timezone' => string 'UTC' (length=3)
  44. 1 =>
  45. object(DateTime)[865]
  46. public 'date' => string '2013-04-18 17:00:00' (length=19)
  47. public 'timezone_type' => int 3
  48. public 'timezone' => string 'UTC' (length=3)


Każdy element tablicy zawiera dwa obiekty DateTime i oznacza przedział czasowy. W jaki sposób mogę usunąć elementy które zawierają przedział czasowy zawarty już w jakimś innym szerszym przedziale (na ten przykład: [1] 9:20-10:27 zawiera się w przedziale [0] 9:00-13:00, więc element 1 powinien w ogóle wylecieć). Poza tym chciałbym jeszcze scalić te przedziały, czyli np z dwóch: 9:00-11:30 i 10:00-12:00 chciałbym mieć jeden przedział, od 9:00 do 12:00. Jak to zrobić?
ViX
Jeśli temat jeszcze aktualny, dopisz proszę czy jeśli mamy przedziały 8:30-9:45 i 9:30-12:00 to:
a. jeden z nich ma wylecieć, bo zakleszczają się?
b. oba mają zostać scalone w przedział 8:30-12:00?
c. czy w ogóle przedziały czasowe mogą na siebie nachodzić?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.