Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja daty - rezerwacja
Forum PHP.pl > Forum > PHP
betasap
Witam,

jak dodac walidacje do poniższego skryptu sprawdzania daty - tak aby błąd był również w przypadku wyboru daty z przeszłości

  1. if (is_array($value) && isset($value['day']) && isset($value['month']) && isset($value['year'])) {
  2. $day = (int) $value['day'];
  3. $month = (int) $value['month'];
  4. $year = (int) $value['year'];
  5.  
  6. if (checkdate($month, $day, $year)) {
  7. return true;
  8. }
  9. }
  10.  
  11. $this->addMessage($this->_messageTemplates['invalid']);
  12. return false;



z góry dziekuję za pomoc

Sephirus
  1. function checkMyDate($y,$m,$d)
  2. {
  3. $date = new DateTime();
  4. $date->setDate($y,$m,$d);
  5. if($date->getTimestamp() < time()) return false; // Data jest stara
  6. $m = str_pad($m, 2, '0', STR_PAD_LEFT); // Potrzebujemy 01 zamiast 1...
  7. $d = str_pad($d, 2, '0', STR_PAD_LEFT); // Potrzebujemy 01 zamiast 1...
  8. $dateOrig = "{$y}-{$m}-{$d}";
  9. if($dateOrig != $date->format('Y-m-d')) return false; // Data jest niepoprawna (czyli np: 32 luty 2012)
  10. return true; // Data jest ok
  11. }


HTH! wink.gif
betasap
przerobilem to na to - ale i tak mam problem z if($date->getTimestamp() > time())

jakies wskazowki questionmark.gif?

  1. /**
  2.   * Returns true if the value is a valid date, false otherwise
  3.   *
  4.   * @param array $value
  5.   * @return boolean
  6.   */
  7. public function isValid($value)
  8. {
  9. if (is_array($value) && isset($value['day']) && isset($value['month']) && isset($value['year'])) {
  10. $day = (int) $value['day'];
  11. $month = (int) $value['month'];
  12. $year = (int) $value['year'];
  13. $date = new DateTime();
  14. $date->setDate($year,$month,$day);
  15. if($date->getTimestamp() > time()) {
  16. return true;
  17. }
  18. }
  19.  
  20. $this->addMessage($this->_messageTemplates['invalid']);
  21. return false;
  22.  
  23.  
  24. }
  25.  
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.