Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Php] Wyświetlenie godzin
Forum PHP.pl > Forum > Przedszkole
Gregorov
Witajcie

Od kliku dni męczę się z pomysłem wypisania pełnych godzin w odstępie co jedną godzinę.
Mam taką tablicę :

  1. $hours = array
  2. (
  3. '0' => array
  4. (
  5. 'start' => '09:00:00',
  6. 'end'=>'15:00:00',
  7. 'dayname'=>'Monday'
  8. ),
  9. '1' => array
  10. (
  11. 'start' => '09:00:00',
  12. 'end'=>'15:00:00',
  13. 'dayname'=>'Tuesday'
  14. ),
  15. '2' => array
  16. (
  17. 'start' => '09:00:00',
  18. 'end'=>'15:00:00',
  19. 'dayname'=>'Wednesday'
  20. ),
  21. '3' => array
  22. (
  23. 'start' => '09:00:00',
  24. 'end'=>'15:00:00',
  25. 'dayname'=>'Thursday'
  26. ),
  27. '4' => array
  28. (
  29. 'start' => '09:00:00',
  30. 'end'=>'15:00:00',
  31. 'dayname'=>'Friday'
  32. ),
  33. '5' => array
  34. (
  35. 'start' => '09:00:00',
  36. 'end'=>'15:00:00',
  37. 'dayname'=>'Saturday'
  38. ),
  39. '6' => array
  40. (
  41. 'start' => '09:00:00',
  42. 'end'=>'15:00:00',
  43. 'dayname'=>'Sunday'
  44. ),
  45.  
  46.  
  47. );


Chciałbym ,aby dla każdego elementu leciał co godzinę. Próbuję foreach , w której umieszczam while ,ale się zapętla.

Myślałem ,żeby uzyskać taki efekt :

Kod
Monday 09:00:00 - 10:00:00
Monday 10:00:00 - 11:00:00
Monday 12:00:00 - 13:00:00

w tym momencie pętla while powinna się zatrzymać , kiedy uzyska wartość end.



http://phpfiddle.org/lite?code=<?php\n$hours = array\n\t(\n\t'0' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Monday'\n\t\t\t),\n\t'1' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Tuesday'\n\t\t\t),\n\t'2' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Wednesday'\n\t\t\t),\n\t'3' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Thursday'\n\t\t\t),\n\t'4' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Friday'\n\t\t\t),\n\t'5' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Saturday'\n\t\t\t),\n\t'6' => array\n\t\t\t(\n\t\t\t\t'start' => '09:00:00',\n\t\t\t\t'end'=>'15:00:00',\n\t\t\t\t'dayname'=>'Sunday'\n\t\t\t),\n\t\n\t\n\t);\necho "<pre>";\nvar_dump($hours);\necho "</pre>";\n\nforeach\t($hours as $item)\n{\n\t\n\t\n\techo strtotime($item['start']).' -'.strtotime($item['end']).'<br />' ;\n\t$start = strtotime($item['start']);\n\t$end = strtotime($item['end']);\n\t\n\t\n\t\n\t\n}\n\n?>\n



Dziękuję z góry za wszelkie wskazówki Pozdrawiam
Pyton_000
  1. <?php
  2.  
  3. $begin = new DateTime( '2012-08-01 10:00:00' );
  4. $end = new DateTime( '2012-08-01 19:00:00' );
  5. $end = $end->modify("1 hour");
  6.  
  7. $interval = new DateInterval('PT1H');
  8. $daterange = new DatePeriod($begin, $interval ,$end);
  9.  
  10. foreach($daterange as $date){
  11. echo $date->format("Ymd H:i:s") . PHP_EOL;
  12. }


Output:
Kod
20120801 10:00:00
20120801 11:00:00
20120801 12:00:00
20120801 13:00:00
20120801 14:00:00
20120801 15:00:00
20120801 16:00:00
20120801 17:00:00
20120801 18:00:00
20120801 19:00:00
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.