jquery日期解析器错误获取NaN错误

时间:2013-11-21 10:00:32

标签: javascript jquery

我在下面写了设置日期文本字段的函数,即daterangepicker.js。在镀铬控制台上抛出“胶水NaN / NaN / NaN-NaN / NaN / NaN”

代码:

function onloadDate(){
    var d1=new Date(Date.parse('today -30days'));
    var date1=d1.getMonth()+1 +"/"+ d1.getDate() +"/"+ d1.getFullYear();
    var d=new Date(Date.parse('today'));
    var date2=d.getMonth()+1 +"/"+ d.getDate() +"/"+ d.getFullYear();
    var dateselected1=date1+"-"+date2;
    var presetFromDate = getPresetFilters("fromDate");
    var presetToDate = getPresetFilters("toDate");
    var presetDateOption = getPresetFilters("dateOption");
    if(sessionStorage.getItem("onloadDate") == null || sessionStorage.getItem("onloadDate") == undefined || sessionStorage.getItem("onloadDate") == "")
    {
        dateOption = "DateRange";
        $('#dateRange').val(dateselected1);
        sessionStorage.setItem("onloadDate","true");
        console.log("gluing"  + dateselected1);
        applyFiltersOnLoad();

        console.log("filter data with date"+sessionStorage.getItem("filterData"));
    }
    else{
        $('#dateRange').value = dateselected1;

    }

}

请帮我找到错误。

2 个答案:

答案 0 :(得分:1)

Date.parse根据documentation接受:

A string representing an RFC2822 or ISO 8601 date.

因此,您的来电Date.parse('today -30days')是错误的。你可以使用

var date = new Date();
date.setDate(date.getDate()-30);

date减去30天。

答案 1 :(得分:0)

检查

ISO8601

IETF-compliant RFC 2822 timestamps

根据这些,您的日期时间字符串必须按照以下格式进行格式化:

1995-02-05T00:00:00