Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Walidacja daty - rezerwacja, walidacja daty
betasap
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.04.2011

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


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


  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! (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
betasap
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.04.2011

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


przerobilem to na to - ale i tak mam problem z if($date->getTimestamp() > time())

jakies wskazowki (IMG:style_emoticons/default/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.  
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:41