如何使用与本地化相关的jquery查找日期格式

时间:2016-08-24 12:35:07

标签: javascript jquery

我正在进行本地化(全球化),使用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中规则部分的“超出最大调用堆栈大小”的错误

1 个答案:

答案 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

希望有所帮助