2016-09-19 2 views
-1

Ich muss den maximalen und minimalen Wert von einem Datum überprüfen, bevor ich ein Formular absende. Ich möchte Daten zwischen 01.01.2005 und 12.12.2020 senden. Wie kann ich Ti in PHP tun? Wenn es in PHP nicht möglich ist, kann in der JavaScript (jQuery)Wie man den maximalen und minimalen Wert für das Jahr in HTML einstellt

<input type="date" name="datepost" value="<?php echo date('Y-m-d');"/> 
+2

Wenn es _before_ submit ist, ist es in PHP nicht möglich; Es muss JavaScript sein. –

+1

Sie können auch 'min' und' max' Attribute verwenden, da Sie '' –

+0

verwenden. Sie können Attribute 'min' und' max' angeben, wie 'min =" 2005-01 -01 "' und 'max =" 2020-12-12 "', aber Sie sollten es immer auch serverseitig validieren. – Qirel

Antwort

1

Wie ich in den Kommentaren erwähnt, alles, was Sie wirklich brauchen, um den Bereich der Eingänge in einem Date-Eingabeelement zu begrenzen, ist die min und max Attribute. Kein JavaScript benötigt!

<input type="date" name="datepost" min="2005-01-01" max="2020-12-12" value="<?php echo date('Y-m-d');"/>

Dies wird das Datum begrenzen, so dass 1. Januar 2005 der Mindest Zeitpunkt zur Verfügung steht in der Form für die Auswahl zu sein, und 12. Dezember 2020 der maximale Zeitpunkt zur Verfügung steht.

Obwohl der Benutzer das Datum angeben kann, indem er einfach ein Datum seiner Wahl eingibt (anstatt eines mit seinem Cursor aus dem Auswahlfenster auszuwählen), außerhalb dieser Parameter, sollten Sie dies in PHP validieren (on eine serverseitige Ebene), die Sie in jedem Fall für alle Benutzereingaben tun sollten. Sie können es auch in JavaScript validieren, aber immer Server-Seite validieren. Siehe die andere Antwort für eine Möglichkeit, es in PHP zu validieren.

0

Diese PHP-Methode prüft, ob das Veröffentlichungsdatum zwischen dem Bereich definiert ist.

Beitrag auf dieser Seite, um zu bestätigen.

$user_time = date('Y-m-d', $_POST['datepost']); 
$min = date('Y-m-d', strtotime('01-01-2005')); 
$max = date('Y-m-d', strtotime('12-12-2020')); 

if (($user_time > $min) && ($user_time < $max)) { 
    //Between Dates 
} 
else { 
//Not between 
} 
+2

Während es gut ist, Dinge serverseitig zu verifizieren, fragte OP * von einem Datum ** bevor ** ein Formular abschicken * :-) – Qirel

+0

@Qirel True. Dies könnte jedoch wahrscheinlich in Verbindung mit einer Prise JS und einem Spritzer Ajax verwendet werden. Die Frage ist jedoch ein bisschen breit. editieren (Epik: nicht mein Downvote hier). –

+0

Ja, offensichtlich gibt es eine Million Möglichkeiten, dies zu tun. Dies ist einfach die PHP-Methode, die * jederzeit * ausgeführt werden kann. Ich werde eine JS-Methode schreiben, wenn OP mehr Details veröffentlicht. – Mike

Verwandte Themen