Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Php] Wyświetlenie godzin
Gregorov
post 22.05.2016, 15:39:50
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 24.09.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post 23.05.2016, 07:18:37
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:00