我正在进行本地化(全球化),使用jquery比较两个日期,比如startDate和EndDate。我的要求是EndDate不应该小于startDate。我有以下代码来比较日期
var startDate = $('#StartDate').val();
var endDate = $('#EndDate').val();
if (startDate.length > 0 && endDate.length > 0) {
return ((new Date(endDate) >= new Date(startDate)))
}
基于此我正在显示错误。 这适用于默认日期格式(en-US)英语。但对于其他语言,例如:德语,中文,并不是因为日期格式不同。 Date格式根据用户选择的语言动态加载到单独的java脚本中。
有没有办法解决这个问题?如果可能的话,我们可以使用jquery获取当前加载的应用程序的日期格式,并在比较日期时使用它吗?
在下面添加更多内容:
我们在Jquery.validate.js
中有规则部分 rules: function( command, argument ) {
// logic for add remove rules..
});
供参考:http://docs.jquery.com/Plugins/Validation/rules 我们为验证日期而添加的规则如下:
$("#EndDate").rules('add', { validateDate: true });
我在form.validate()
之后添加了以上行$.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 }
);
所以如果我使用“getDate”来获取datepicker中的日期,我们会收到jquery.validate.js中规则部分的“超出最大调用堆栈大小”的错误
答案 0 :(得分: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'));
您可以在此链接中找到所有信息: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
希望有所帮助