web-dev-qa-db-ja.com

jQuery / JavaScript:日付ですか? (日付かどうかの検証)

Datepickerがありますが、ユーザーのエントリが日付であるかどうか、および必要な形式(format:yyyy-mm-dd))

これは私の日付ピッカーです:

$("input[name='date']").datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, numberOfMonths: 3, showButtonPanel: true});

私はこのソリューションを見ました、「 特定の日付を禁止/拒否するためにdatepickerを検証する方法? 」。とてもシンプルに見えますが、週末かどうかを確認するだけです。ユーザーが日付、乱数、またはタイプミス(1231 .... 30-30-2011 ... 30/30/2011 ... 212-565-565 ...など)を入力したかどうかはチェックしません。 。

私のバイオリンをいじってください: http://jsfiddle.net/MDa4A/




追加情報(11-10-2011):
(これらのjsFiddlesを試して、0-0-0または0/0/0と入力してください)

あなたの答えを使って解決策を考えました。 "yy-mm-dd"の形式を使用すると動作します: http://jsfiddle.net/LyEvQ/

しかし、別の形式(Ej .: "mm/dd/yy")http:// jsfiddle.net/LyEvQ/1/

両方とも働く必要があります。助けてもらえますか

16
Omar
if (Date.parse("some string")) {
   //Valid date
} else {
  //Not a valid date
}
34
Asmor

このような何かが動作するはずです:

jQuery.validator.addMethod("customDateValidator",
    function(value, element) {
        try { jQuery.datepicker.parseDate("mm/dd/yyyy", value); return true; }
        catch(e) { 
            return false;
        }
    },
    "Please enter a valid date"
);

$("input[name='date']").rules("add", { customDateValidator:true });
10
James Johnson

Date.parse() メソッドを使用して、日付が有効かどうかを確認します。

var timestamp = Date.parse($("input[name='date']").val()) 

if (isNaN(timestamp) == false) { 
    var d = new Date(timestamp); 
} 
7
James Hill