Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyswietlanie daty od...do..., dwie takie same daty
wcg
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.07.2006

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


Witam
Mam taka funkcje do wyswietlania dat od.. do.. okreslonej daty.


  1. <?php
  2. function daty($start, $end, $format = '%Y-%m-%d') {
  3. for($i = strtotime($start); $i <= strtotime($end); $i+=86400)
  4. $array[] = strftime($format, $i);
  5. return $array;
  6. }
  7. $dates = daty($od, $do);
  8. foreach ($dates as $ad) {
  9. print "$ad</br>n";
  10. }
  11. ?>


Dziala ona bardzo dobrze ale jest problem ktorego nie moge zrozumiec. Przy podstawieniu
$od="2007-10-01";
$od="2007-10-31";
wyswietla sie zakres tylko do 2007-10-30, wycina tylko 31 pazdziernika. W innych miesiacach tego nie ma.
Czy ktos wie co jest tu zle i jak to poprawić?

Teraz spojrzalem dokladnie wyswietla dwa razy 28.10.2007. W roku 2008 wyswietli dwa razy 26.10.2007. O co tu chodzi?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował wcg 1.05.2007, 08:24:08
Go to the top of the page
+Quote Post
rojmarek
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

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


wyswietl sobie co masz w strtotime($end), za każdym razem wyswietlaj co masz w $i i zobaczysz co jest nie tak ;]
nie powinno sie do for'a wstawiać strtotime($end),
  1. <?php
  2. function daty($start, $end, $format = '%Y-%m-%d') {
  3. $time_end = strtotime($end);
  4. for($i = strtotime($start); $i <= $time_end; $i+=86400)
  5. $array[] = strftime($format, $i);
  6. return $array;
  7. }
  8. ?>
Go to the top of the page
+Quote Post
wcg
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.07.2006

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


Niestety dalej to samo;(
Go to the top of the page
+Quote Post
rojmarek
post
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

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


Cytat(wcg @ 1.05.2007, 07:29:50 ) *
Niestety dalej to samo;(

przeczytałeś wszystko co napisałem...? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
kod który wrzuciłem jest szybszy, bo nie oblicza się za każdym obiegiem pętli wartości strtotime($end);
Go to the top of the page
+Quote Post
wcg
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.07.2006

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


Przeanalizowalem twoje podpowiedzi i wychodzi na to ze problem z wyswietlaniem dat wystepuje tylko gdy sa formatowane na Y-m-d a nie wyswietlane w formie cyferkowej (1193781600).
Kod wyglada tak:
  1. <?php
  2. function daty($start, $end, $format = '%Y-%m-%d') {
  3. $time_end = strtotime($end);
  4. $time_start = strtotime($start);
  5. for($i = $time_start; $i <= $time_end; $i+=86400)
  6. $array[] = strftime($format, $i);
  7. return $array;
  8. }
  9. ?>

Ale problem dalej pozostaje i nie bardzo wiem o co chodzi, czy moze ktos pomoc?

Ten post edytował wcg 8.05.2007, 05:21:54
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 17:56