私は、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 }
);
ので
これらの入力フィールドをホープ、彼らは何ですか?ユーザーが手動で値を入力していますか?もしそうなら、その上で何らかのバリデーションを行っていますか? //一般的には、現在の/ローカルの書式に基づいてデータを比較するべきではありませんが、常に「生の」基礎データを比較してください。 – CBroe
ありがとうございます。これは通常の入力フィールドです。Datepickerコントロールから日付を選択しています。 – Mani
HTML5 type = date、またはJSを介してdatepickerが適用された通常のテキスト入力フィールド? – CBroe