-1

我有一个函数可以从 jQuery 日历中获取日期,然后将其格式化为年月日。

我为日历获取的日期是 dateString 的 03/04/2013,然后我希望它采用 2013-03-04 的格式。但是我得到的 start_date 日期是 2013-21-04。奇怪,因为它一直没问题,我想。

function makeUpDates() {
    // concantenate values to date_start and date_end hidden inputs
    var dateString = document.getElementById('date').value, date = new Date(dateString);
    document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + ("0" + date.getDate()).slice(-2);
    var numDays = document.getElementById('slider').value;
    date.setDate(date.getDate() + parseInt(numDays));
    var dateEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + ("0" + date.getDate()).slice(-2);
    document.getElementById('date_end').value = dateEnd;
}
4

2 回答 2

1

您可以像这样转换日期

//will take a date in the form MM/DD/YYYY and return YYYY-MM-DD
function convertDate(dateString){
    var dateparts = dateString.split("/");
    var newDate = dateparts[2]+"-"+dateparts[0]+"-"+dateparts[1]
    return newDate;
}

此外,对于更一般的日期处理,您可以查看moment.js,在this answer to an more general question on this topic中提到

于 2013-03-04T18:31:51.377 回答
1

开始日期是 2013-21-04

可能你忘记了date.getMonth()+1字符串连接中的括号,产生21而不是3. 不过,它似乎已在您发布的代码段中得到修复。

于 2013-03-04T18:35:01.207 回答