Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyswietlanie w pętli daty od do
wcg
post
Post #1





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

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


Witam. Poszukuje rozwiązania takiego proglemu. Chce utworzyć tabelkę w ktorej za pomocą pętli wyświetlę wiersze tabeli pomiędzy jakimiś dwoma datami.
2006-07-01
2006-07-02
2006-07-03
itd...

Zrobiłem coś takiego:
<?
print "<TABLE class=tab border=0 cellpadding=0 cellspacing=0 width=600 align=left>";
print "<tr><th width=70>data</th></tr>";
$poczatek = date("Y-m-d");
$poczatek = "2006-07-01";
$koniec = date("Y-m-d");
$koniec = "2006-08-31";
for($i = $poczatek; $i <= $koniec; $i++) {
print "<tr><td>$i</td>";
}
print "</tr></table>";
?>
jednak nie za bardzo coś takiego chce działać, czy ktoś mógłby coś doradzić?
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


  1. <?php
  2. for($i=1;$i<=$ile_dni;$i++){
  3. If($i>1){
  4. $days="+$i days";
  5. }else{
  6. $days="+$i day";
  7. };
  8. print(date('Y-m-d'), strtotime($days));
  9. };
  10. ?>


to powinno wyswietlic wszytkie daty od bierzacej daty do $ile_dni do przodu

PS uzywaj zancznikow [php][/php] kiedy wpisujesz kod php

Ten post edytował piotrekkr 21.07.2006, 19:33:14
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%)
-----


To wszystko bardzo ładnie chodzi. Dzięki wielkie, ale jak zrobić aby podać w parametrze data1 i data2 zeby wtedy wypisywalo caly ciag, a nie od dnia dzisiejszego?
Go to the top of the page
+Quote Post
piczu
post
Post #4





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


  1. <?php
  2. function printdates($start_date, $end_date, $format = "%Y-%m-%d") {
  3. for($i = strtotime($startdate); $i < strtotime($end_date); $i+=86400)
  4. echo strftime($format, $i)."n";
  5. }
  6. ?>

pisane z glowy, wiec nie wiem czy gdzies sie nie pomylilem

Ten post edytował piczu 22.07.2006, 12:45:47


--------------------
pozdrawiam :)
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%)
-----


Kurcze, probowałem to odpalić ale nie dalem rady tego uruchomić, po podstawieniu parametrów nic sie kompletnie nie dzieje. Może jeszcze jakas podpowiedz?
Go to the top of the page
+Quote Post
piczu
post
Post #6





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


wszystko dziala tylko literowke jedna machnalem:
  1. <?php  
  2. function printdates($start_date, $end_date, $format = "%Y-%m-%d") {  
  3. for($i = strtotime($start_date); $i < strtotime($end_date); $i+=86400)
  4. echo strftime($format, $i)."n";
  5. }
  6.  
  7. printdates("2006-07-01", "2006-08-31");
  8. ?>

tylko nie wiem czy chcesz date koncowa wlacznie, jezeli tak to zmien na mniejsze lub rowne.


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post
wcg
post
Post #7





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

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


Działa faktycznie bardzo ladnie. Probowałem to jednak wstawić w moj program:
  1. <?
  2. print '<TABLE width=600 align=left>';
  3. print '<tr><th width=70>data</th>';
  4. print '<th>1</th>';
  5. print '<th>2</th>';
  6. print '<th>3</th>';
  7. print '<th>4</th>';
  8. print '<th>5</th>';
  9. print '<th>6</th>';
  10. print '<th>7</th></tr>';
  11.  
  12. function printdates($start_date, $end_date, $format = '%Y-%m-%d') {
  13. for($i = strtotime($start_date); $i < strtotime($end_date); $i+=86400)
  14. $ad = strftime($format, $i)."n";
  15.  
  16. print '<tr><td>$ad</td>';
  17. print '<td></td>';
  18. print '<td> </td>';
  19. print '<td> </td>';
  20. print '<td> </td>';
  21. print '<td> </td>';
  22. print '<td> </td>';
  23. print '<td> </td>';
  24. }
  25. printdates('2006-07-01', '2006-08-31');
  26. print '</tr></table>';
  27. ?>


i cosik nie bardzo chce isc. Wyświetla tylko ostatni rekord. Gdzie może być problem nie mam pojecia?
Go to the top of the page
+Quote Post
piczu
post
Post #8





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


  1. <?
  2.  
  3. function printdates($start_date, $end_date, $format = '%Y-%m-%d') {
  4. for($i = strtotime($start_date); $i < strtotime($end_date); $i+=86400)
  5. $array[] = strftime($format, $i);
  6. return $array;
  7. }
  8.  
  9. print '<TABLE width=600 align=left>';
  10. print '<tr><th width=70>data</th>';
  11. print '<th>1</th>';
  12. print '<th>2</th>';
  13. print '<th>3</th>';
  14. print '<th>4</th>';
  15. print '<th>5</th>';
  16. print '<th>6</th>';
  17. print '<th>7</th></tr>';
  18.  
  19. $dates = printdates('2006-07-01', '2006-08-31');
  20.  
  21. foreach ($dates as $ad) {
  22. print '<tr><td>$ad</td>';
  23. print '<td></td>';
  24. print '<td> </td>';
  25. print '<td> </td>';
  26. print '<td> </td>';
  27. print '<td> </td>';
  28. print '<td> </td>';
  29. print '<td> </td>';
  30. print '</tr>';
  31. }
  32. print '</table>';
  33. ?>

o to chodzi?


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post
wcg
post
Post #9





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

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


Dokładnie o to mi chodziło. Dziękuję bardzo!

A jak zrobić żeby np w drugiej kolumnie obok daty wyświetliło dzień tygodnia, np. 2006-07-01 sobota?
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no musisz dopisac ten dzien tygodnia: date('l')
  1. <?php
  2. $array[] = array(strftime($format, $i), date('l',$i));
  3. ?>

A jak to wtloczyc do skryptu - pozostawiam tobie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wcg
post
Post #11





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

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


Jakoś się udało. Tylko wyswietla oczywiście w angielskim. A nie mógłby po polsku? Ktoś pomoże?
Go to the top of the page
+Quote Post
piczu
post
Post #12





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 4.01.2005
Skąd: piczu.info

Ostrzeżenie: (10%)
X----


manual nie gryzie: setlocale" title="Zobacz w manualu php" target="_manual i strftime" title="Zobacz w manualu php" target="_manual


--------------------
pozdrawiam :)
Go to the top of the page
+Quote Post
wcg
post
Post #13





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

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


Poradziłem sobie troche w inny sposób;)
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 Aktualny czas: 20.08.2025 - 17:11