Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+jQuery] zakres dni w kalendarzu
Forum PHP.pl > Forum > PHP
dopelganger
cześć mam problem, korzystam z komponentu jquery datepicker i chciałbym w kalendarzu zaznaczyć zakres dni.
Z bazy pobieram początkową date i końcową (zapisaną w formacie yyymmdd)

np:
20140101 - początkowa
20140103 - końcowa

jak zaznaczyć środkową date w kalendarzu: 20140102 itd, rozpiętości mogą być większe

prosze o pomoc.

  1. $sql = $db->query("SELECT * FROM kalendarz");
  2. $num = $sql->num_rows;
  3.  
  4. ?>
  5.  
  6. <script>
  7. var dateArray = new Array();
  8.  
  9. <?php
  10.  
  11. for ($i=1;$i<=$num;$i++)
  12. {
  13. $row = $sql->fetch_assoc();
  14.  
  15. $do = $row["data_koncowa"]; // yyyymmdd
  16. $od = $row["data_poczatkowa"]; // yyyymmdd
  17.  
  18. // $date1 i $date2 , $link1 i $link2 - pominąłem tutaj aby nie mieszać, date1 i date2 są po prostu przeformatowane do postaci: mm/dd/yyyy (aby pokazać je w kalendarzu)
  19.  
  20. echo "dateArray.push({date: new Date('".$data1."'), link: '".$link1."', title: ''});"; // data początkowa
  21. echo "dateArray.push({date: new Date('".$data2."'), link: '".$link2."', title: ''});"; // data końcowa
  22.  
  23. }
  24.  
  25. ?>
rocktech.pl
Witam.

Wpleć ten kod odpowiednio ...

  1.  
  2. $begin = new DateTime('2013-08-31'); //$row["data_poczatkowa"]
  3. $end = new DateTime('2013-09-30'); //$row["data_koncowa"]
  4.  
  5. $interval = new DateInterval('P1D');
  6. $daterange = new DatePeriod($begin, $interval, $end);
  7.  
  8.  
  9. foreach ( $daterange as $date ) {
  10. echo "dateArray.push({date: new Date('". $date->format("Y/m/d")."'), link: '".$link1."', title: ''});";
  11. }
  12.  
dopelganger
fajnie działa, tylko że jak podstawie zmienne to nie działa , może coś źle robie?

  1. $od_rok = substr($row["data_rozpoczecia"],0,4);
  2. $od_miesiac = substr($row["data_rozpoczecia"],4,2);
  3. $od_dzien = substr($row["data_rozpoczecia"],6,2);
  4.  
  5. $dat1 = $od_rok.'-'.$od_miesiac.'-'.$od_dzien;
  6. $begin = new DateTime($dat1);
  7.  
  8. // analogicznie $dat2...
rocktech.pl
Do konstruktora obiektu DateTime możesz przekazać bezpośrednio string w formacie YYYYMMDD.

  1. $begin = new DateTime($row["data_rozpoczecia"]);
dopelganger
Cytat(rocktech.pl @ 3.01.2014, 12:13:42 ) *
Do konstruktora obiektu DateTime możesz przekazać bezpośrednio string w formacie YYYYMMDD.

  1. $begin = new DateTime($row["data_rozpoczecia"]);


dziwne, zaznacza wszystkie daty , dni w kalendarzu ...
(działa dobrze jak podam przykładowe daty jak mi podałeś, a jak przekazuje zmienne to już nie działa )
rocktech.pl
  1. var_dump($row["data_rozpoczecia"]);
dopelganger
Cytat(rocktech.pl @ 3.01.2014, 12:25:11 ) *
  1. var_dump($row["data_rozpoczecia"]);



ahh to mój błąd ;////

dziękuje Ci bardzo za pomoc, działa bardzo dobrze
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.