Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak sprawdzić czy data mieści się w odpowiednim przedziale
Forum PHP.pl > Forum > Przedszkole
lamcpp
Witam,
chciałbym sprawdzić czy data: $data1 mieści się w przedziale pomiędzy 23 sierpniem a 12 września. Jak to zakodować za pomocą instrukcji if
W tej chwili mam taki kod:
  1. $wynik1 = strtotime($rok.'-'.$miesiac.'-'.$dzien);
  2. $wynik2 = strtotime($rok2.'-'.$miesiac2.'-'.$dzien2);
  3.  
  4. for($i=$wynik1;$i<=$wynik2;$i+=86400){
  5. $data = date('d-m-Y',$i).'<br /><br />';
  6. if($dzien >= 2 AND $miesiac >=4 AND $dzien <= 22 AND $miesiac <= 8){
  7. echo $data = date('d-m-Y',$i).' pierwsza<br />';
  8. }
  9. else if(($dzien >= 23 AND $miesiac >=8) OR ($miesiac <= 9 AND $dzien <= 12 )){
  10. echo $data = date('d-m-Y',$i).' druga<br />';
  11. }
  12.  
  13. }

$wynik1 jest datą przedziału od: czyli np. 1.01.2011
$swynik2 jest datą przedziału do: czyli npn. 17.01.2011
W kodzie najpierw zamieniam datę od i datę do na format unixowy, nastepnie w petli podaje dwa przedziały od ktorych do ktorych ma wyświetlić daty i liczba 86400 swiadczy ze ma przechodzic o 1 dzien do przodu. W samej pętli zamieniam każdą z dat na postać zrozumiałą dla człowieka. I po zamianie muszę sprawdzić czy data spełnia dwa warunki: 1) czy jest większa lub równa od 2 kwietnia i jednocześnnie mniejsza lub równa od 22 sierpnia
2) czy jest większa lub równa od 23 sierpnia i jednocześnie mniejsza lub równa od 12 września.
Te dwie instrukcje if są jakoś zle zbudowane z takiego powodu ze drugiej instrukcji nigdy nie wyswietli poniwaz dzien musi być jednoczesnie wiekszy od 23 i jednoczesnie mniejszy od 12. Nie za bardzo wiem jak to obejsc, dlatego proszę o pomoc, jak zrobic te instrukcje if dla tych warunków
smietek
  1. $data_test = mktime(0,0,0, <miesiąc>, <dzień>, <rok>);
  2. $data_start = mktime(0,0,0, <miesiąc>, <dzień>, <rok>);
  3. $data_stop = mktime(0,0,0, <miesiąc>, <dzień>, <rok>);
  4. if($data_test >= $data_start AND $data_test <= $data_stop){
  5. //Kod
  6. }

Wszystko najlepiej zamienić na Unix timestamp i na nim operować. Na niczym innym.
Tłumaczyć co gdzie wpisujesz chyba nie muszę.
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.