ユーザーがフォームを送信した後、日付の引数を検証したいと思います。私のアプリケーションはColdFusion 9で動作しており、isDate()
のような組み込み関数はほとんどありませんが、この関数はいくつかのファンキーな日付値であってもtrueを返します。日付を検証するために、この方法はすべての問題を持っている場合、私は思ったんだけどColdFusion 9日付検証?
<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>
:私は私の日付の引数を検証するため、このように近づいてきましたか?私は日付を日、月、年に分割しようとしました。それから私はそれが正しい範囲にあるかどうかそれぞれをチェックしていました。私が探しているべきことが他にあるかどうかはわかりません。私は私のアプリで米国の日付形式mm/dd/yyyyを使用しています。誰かが何か提案があれば教えてください。ありがとうございました。
日付の自由形式の入力を許可していますか?もしそうなら、代わりに日付ピッカーを使うことをお勧めします。 Moment.js(http://momentjs.com/)はかなり優れていて実装が簡単です。日付は非常に長い間私の存在の悩みになっています。あなたが日付の解釈をあなたに送って、あなたにあなたの解釈を送るようにユーザーの能力を奪うならば、あなたはもっと幸せなキャンピングカーになるでしょう。 – Shawn
ごめんなさい。 http://makingsense.github.io/moment-datepicker/は、momentjを使用する優れたdatepickerです。 Moment.jsは、検証と書式設定に使用されます。 – Shawn
しかし、もう一度、私のような人は、キーボードだけを使用してクラップウェアとして完成できないフォームを考えています。 –