Ich möchte Datum Argument überprüfen, nachdem Benutzer das Formular übermittelt. Meine App läuft auf ColdFusion 9 und es gibt nur wenige eingebaute Funktionen wie isDate()
, aber diese Funktion wird auch für einige funky Datumswerte True zurückgegeben. Ich habe mich diesem Weg genähert, um mein Datumsargument zu validieren:ColdFusion 9 Datumsvalidierung?
<cfarguments name="myDate" type="string" required="true">
<cfset getMonth = Month(myDate)>
<cfset getDay = Day(myDate)>
<cfset getYear = Year(myDate)>
<cfif getMonth LT 1 OR getMonth GT 12>
<cfset message = "Month value should be in a range between 1 and 12.">
<cfelseif getDay LT 1 OR getDay GT 31>
<cfset message = "Day value should be in a range btween 1 and 31.">
<cfelseif ((getMonth EQ 4 OR getMonth EQ 6 OR getMonth EQ 9 OR getMonth EQ 11) AND getDay EQ 31)>
<cfset message = "Month of April, June, September and November have 30 days.">
<cfelseif getMonth EQ 2>
<cfset isLeap = (getYear MOD 4 AND (getYear MOD 100 NEQ 0 OR getYear MOD 400 EQ 0))>
<cfif (getDay GT 29 OR (getDay EQ 29 AND NOT isLeap))>
<cfset message = "Only leap year can have 29 days.">
</cfif>
</cfif>
Ich frage mich, ob diese Weise, Datum zu validieren irgendwelche Probleme hat? Ich habe versucht, das Datum auf Tag, Monat und Jahr aufzuteilen. Dann überprüfte ich jeden, ob er im richtigen Bereich ist. Ich bin mir nicht sicher, ob es noch etwas gibt, nach dem ich suchen sollte. Ich verwende US-Datumsformat MM/TT/JJJJ in meiner App. Wenn jemand irgendwelche Vorschläge hat, lass es mich wissen. Vielen Dank.
Sie erlauben die freie Eingabe eines Datums? Wenn ja, würde ich vorschlagen, stattdessen eine Datumsauswahl zu verwenden. Moment.js (http://momentjs.com/) ist ziemlich gut und einfach zu implementieren. Daten waren lange Zeit der Fluch meiner Existenz, und wenn Sie dem Benutzer die Möglichkeit nehmen, Ihnen die Interpretation eines Datums zu senden und sie zu zwingen, Ihnen Ihre Interpretation zu schicken, werden Sie ein glücklicherer CAMPER sein. – Shawn
Es tut uns leid. http://makingsense.github.io/moment-datepicker/ ist ein guter Datepicker, der momentjs verwendet. Moment.js wird für die Überprüfung und Formatierung verwendet. – Shawn
Aber andererseits, gibt es Leute wie mich, die jede Form betrachten, die nicht mit nur einer Tastatur abgeschlossen werden kann, um crapware zu sein. –