Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] graniczne daty
Forum PHP.pl > Forum > Przedszkole
lnn
Mam problem z zablokowaniem poczatkowej daty kiedy nie bedzie mozliwe np potwierdzenie
mam taki kod
  1. <?php
  2. $data = date ("d-m-Y, G:i"); // aktualna data
  3. $data_poczatek = date ("22-04-2009, 00:45"); // data poczatku promocji
  4. $data_koniec = date ("28-04-2009, 21:02"); // data konca promocji
  5.  
  6.  
  7. if ($data <= $data_poczatek ) {
  8.    echo "promocja sie jeszcze nie zaczela";
  9. }
  10. elseif ($data >= $data_koniec) { // sprawdza date konca promocji
  11.    echo 'Koniec promocji!'; }// komunikat w przypadku przekroczenia daty promocji
  12.    else {
  13.        echo "data rozpoczaecia i zakonczenia ok";
  14.    }
  15. ?>

i cos mi nie dziala sprawdzanie poczatkowej ;/ wie ktos w czym tkwi blad?
nospor
to co teraz robisz to porownanie tekstu.
zamien sobie to na unixowy znacznik czasu i wtedy porownuj juz jako liczba

po zatym nie
=>
a:
>=
lnn
Cytat(nospor @ 23.04.2009, 10:16:20 ) *
zamien sobie to na unixowy znacznik czasu i wtedy porownuj juz jako liczba

yyy a tak po polskiemu?
skowron-line
Cytat(lnn @ 23.04.2009, 08:17:33 ) *
yyy a tak po polskiemu?

po polskiemu to bedize jakos "weż odpal google i wpissz porównywanie dat"
albo php.net -> strtotime.
lnn
nie wiem czy dobrze zrozumieliscie o co mi chodzi smile.gif
mam 3 daty
1 - aktualna
2 - poczatek
3 - koniec

skrypt ma sprawdzac:
1) czy aktualna data nie jest mniejsza od poczatkowej
2) czy aktualna data nie jest wieksza od koncowej
3) jesli spelnia te 2 warunki to skrypt cos tam wykonuje

chodzi o to zeby to zastosowac do jakiejs promocji ograniczonej granicznymi datami - poczatku i konca, nie bardzo wiem od czego zaczac ;/
skowron-line
zamień sobie daty na liczbe senkund i porównaj która jest od której większa i już wszystko co jest Ci potrzebne dostałeś już w postach wyżej.
lnn
zrobilem cos takiego, niby dziala, ale ocencie sami
  1. <?php
  2. $data = date ("d-m-Y, G:i"); // aktualna data
  3. $data_poczatek = date ("27-04-2009, 00:45");
  4. $data_koniec = date ("28-04-2009, 23:02"); // koniec
  5.  
  6. if ($data < $data_poczatek) {
  7.    echo 'promocja sie nie rozpoczela';
  8. }
  9. elseif ($data > $data_koniec) {
  10.    echo 'koniec promocji ';
  11. }
  12. else {
  13.    echo 'wykonaj';
  14. }
  15.  
  16. ?>
#luq
Słuchaj nospor`a
Cytat
zamien sobie to na unixowy znacznik czasu i wtedy porownuj juz jako liczba


mktime" title="Zobacz w manualu PHP" target="_manual
bogdan89
  1. <?php
  2. if ((strtotime($aktualna) >= strtotime($poczatkowa)) && (strtotime($aktualna) <= strtotime($koncowa)))
  3. {
  4.    //ok
  5. }
  6. else
  7. {
  8.    //data aktualna nie jest w przedziale
  9. }
  10. ?>
lnn
dzieki dziala smile.gif

jeszcze male pytanko, jesli chce zeby to
  1. <?php
  2. if (!(strtotime($data) >= strtotime($data_poczatek)) && (strtotime($data) <= strtotime($data_koniec))) {
  3. ?>

zwracalo blad to ten "!" bedzie zaprzeczal cale wyrazenie? tongue.gif

pytam dlatego ze sprawdza mi ta instrukcja jeszcze inne rzeczy oprocz daty smile.gif i tu chcialbym zeby tylko blad wyskakiwal a w przypadku jesli jest ok zeby przechodzilo do sprawdzania kolejnego warunku..
#luq
Musisz zanegować wszystko, tzn.
  1. <?php
  2. if ( !( ( strtotime($data) >= strtotime($data_poczatek) ) && ( strtotime($data) <= strtotime($data_koniec) ) ) )
  3. ?>
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.