- ベストアンサー
フォーム日付入力値の減算
画面で日付開始日、日付終了日を入力させて、 日付終了日-日付開始日で範囲を算出し、 20日以上の指定の場合はエラー表示したいです。 今は day=Number(document.form.endDay.value)-Number(document.form.StartDay.value) と記述していますが、dayをalert表示するとNaNと表示されてしまいます。 アドバイスお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんちは。 データ型がめちゃくちゃだからです。 >>NaN 数字型以外だから出る。 >>Number 数字型に変換する。 まず、終了日と開始日の入力形式が不明。 「2007/02/16」と入力させているのなら、「/」は数字型にはなりえないです。 日付の計算。なので、数字型で計算しようとしても、単純に引き算すればできるってわけでもありません。 一番簡単なのは、日付に変換してから計算する方法なので日付型に変換してから計算してやってください。 「JavaScript 日数 計算」とかでひっかければゴロゴロ出てきますよ。
その他の回答 (1)
- ANASTASIAK
- ベストアンサー率19% (658/3306)
回答No.2
ここに良い例があります。 http://okwave.jp/qa229618.html
質問者
お礼
アドバイスありがとうございます。 参考にさせていただき解決しました。
お礼
アドバイスありがとうございます。 参考にさせていただき、下記のコードでできました。 var from_date = new Date(document.Form.From_Day); var to_date = new Date(document.Form.To_Day); var iDay = Math.floor((to_date - from_date)/(24*3600*1000)); if(iDay > 20 ){ alert("エラー"); }