This question already has answers here:
How to change date format
                                
                                    (2个答案)
                                
                        
                2年前关闭。
            
        

我在这里一直在研究许多类似的问题,但事实是,我并没有取得很大的成功,直到我遇到一个令我满意的答案,但几乎没有花招:

 function convertDate (userDate) {
  // convert parameter to a date
  var returnDate = new Date(userDate);

  // get the day, month and year
  var y = returnDate.getFullYear();
  var m = returnDate.getMonth() + 1;
  var d = returnDate.getDay();

  // converting the integer values we got above to strings
  y = y.toString();
  m = m.toString();
  d = d.toString();

  // making days or months always 2 digits
  if (m.length === 1) {
    m = '0' + m;
  }
  if (d.length === 1) {
    d = '0' + d;
  }

  // Combine the 3 strings together
  returnDate = y + m + d;

  return returnDate;
}


这可能很明显,但是输出中的月份和日期不能100%正常工作,我只是不知道为什么。

输出示例:

convertDate("12/31/2014");
"20141203"
convertDate("02/31/2014");
"20140301"


编辑:
getDay替换getDate似乎可以解决问题。

这个答案也适合我的情况:

function convertDate (userDate) {
    return userDate.substr(6,4) + userDate.substr(3,2) + userDate.substr(0,2);
}

最佳答案

这是因为getDay返回工作日0到6。您应该改用getDate

您的第二个示例也是错误的日期,因为二月永远不会有31天。

也许您应该尝试一下[momentjs]。它确实有助于使用日期和使用format在格式之间进行转换。

09-11 19:12