javascript日期格式错误

时间:2013-03-04 18:25:49

标签: javascript jquery

我有一个函数可以从jQuery日历中获取日期,然后在年 - 月 - 日中对其进行格式化。

我获得日历的日期是03/04/2013 for dateString然后我希望它的格式为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;
}

2 个答案:

答案 0 :(得分: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;
}

另外,对于更一般的日期处理,您可以查看this answer中提到的关于此主题的更一般性问题的moment.js

答案 1 :(得分:1)

  

start_date是2013-21-04

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