Javascript日期解析产生错误的日​​期

时间:2017-07-21 18:36:42

标签: javascript date parsing datetime bpm

我试图将日期解析为用户使用IBM的BPM Coach框架输入的字符串(输入在dd / MM / YYYY中)。我需要将Date解析为String并将其传递给外部服务。我通过使用以下代码片段得到了预期的结果,但在少数情况下。



var today = new Date();
    var dd = today.getDate();

    var mm = today.getMonth()+1;
    
    var yyyy = today.getFullYear();
    if(dd<10){
        dd='0'+dd;
    } 
    if(mm<10){
        mm='0'+mm;
    } 
    
    var today = dd+'/'+mm+'/'+yyyy;
    console.log(today)
&#13;
&#13;
&#13;

在测试时,我提供了输入上的值01/01/1991,javascript解析器失败,捕获的输入类似于32/12/1990。

我不知道如何迎合这一点。 任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

如何在这种情况下调用getDate(),以便返回32/12/1990

&#13;
&#13;
function getDate( inDate ) {
    var dd = inDate.getDate();
    var mm = inDate.getMonth()+1;
    var yyyy = inDate.getFullYear();

    if(dd<10) dd= '0'+dd;
    if(mm<10) mm= '0'+mm;

    return dd+'/'+mm+'/'+yyyy;
}

console.log( getDate( new Date()) );
&#13;
&#13;
&#13;

答案 1 :(得分:0)

可能归结为您正在使用的浏览器。 Chrome解析(大多数说服力正确)的日期与Firefox和Safari不同,更常见的是"Yeah, unfortunately the date-parsing algorithms are implementation-dependent"

那该怎么办?您可以尝试使用jQuery UI's日期选择器并传递您需要的格式,这样您就可以避免重新格式化并确保它跨浏览器工作。