2016-08-24 3 views
3

私は、startDateとEndDateのようなjqueryを使って2つの日付を比較して、ローカリゼーション(グローバリゼーション)に取り組んでいます。私の要件は、EndDateがstartDateより小さくなるべきではないということです。私は日付を比較する次のコードを持っていますローカライゼーションに関連するjqueryを使用して日付フォーマットを見つける方法

var startDate = $('#StartDate').val(); 
    var endDate = $('#EndDate').val();   
    if (startDate.length > 0 && endDate.length > 0) {      
     return ((new Date(endDate) >= new Date(startDate))) 
    } 

これに基づいて、私はエラーを表示しています。 これは、デフォルトの日付形式(en-US)の英語で問題なく動作します。しかし、例えば、ドイツ語、中国語などの他の言語の場合は、日付形式が異なるためではありません。 日付形式は、ユーザーが選択した言語に応じて、別々のJavaスクリプトに動的に読み込まれます。

この問題を解決する方法はありますか?可能であれば、jqueryを使用して現在ロードされているアプリケーションの日付形式を取得し、日付を比較しながらそれを使用できますか?

を以下にいくつかのより多くのコンテンツを追加する:我々は次のように日付を検証するために添加http://docs.jquery.com/Plugins/Validation/rules ルール:

我々は、参考のためJquery.validate.js

rules: function(command, argument) { 
// logic for add remove rules.. 
}); 

のルール部を有する

$("#EndDate").rules('add', { validateDate: true }); 

上記の行は、form.validate()の後に追加しました

私たちはjquery.validate.jsで規則セクションの「超過最大コールスタックサイズ」のようなエラーを取得している日付ピッカーから日付を取得するため、「のgetDate」を使用する場合
$.validator.addMethod("validateDate", function (value, element) { 
    var startDate = $('#StartDate').datepicker("getDate"); 
    var endDate = $('#EndDate').datepicker("getDate"); 
    if (startDate.length > 0 && endDate.length > 0) {      
     return ((new Date(endDate) >= new Date(startDate)))   
    } 
    else if (endDate.length == 0) 
     return true; 
    }, function() { return dateRangeErrorMessage } 
    ); 

ので

+0

これらの入力フィールドをホープ、彼らは何ですか?ユーザーが手動で値を入力していますか?もしそうなら、その上で何らかのバリデーションを行っていますか? //一般的には、現在の/ローカルの書式に基づいてデータを比較するべきではありませんが、常に「生の」基礎データを比較してください。 – CBroe

+0

ありがとうございます。これは通常の入力フィールドです。Datepickerコントロールから日付を選択しています。 – Mani

+0

HTML5 type = date、またはJSを介してdatepickerが適用された通常のテキスト入力フィールド? – CBroe

答えて

0

あなたは試すことができます日/月/年を追加するなどの異なる方法で日付を作成します。例:あなたがオブジェクトを持っていたら

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

は、操作を行う前に、ロケールプロパティを変更することを忘れないでください。あなたは、このリンクですべての情報を見つけることができ

// for Japanese, applications may want to use the Japanese calendar, console.log(date.toLocaleDateString('ja-JP-u-ca-japanese'));

: - HTML5の日付入力、通常のテキストフィールド、... https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

はそれが

関連する問題