将Javascript字符串日期格式化为特定格式

时间:2016-11-25 02:13:29

标签: javascript datejs

我有一个类似2016/1/1的字符串,我希望将其更改为2016/01/01yyyy/mm/dd)之类的正确格式。输出格式也应该是String。

这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:2)

这是我经常使用的一段代码:

function yyyymmdd(dte) {
  var _date = new Date(dte);
  var mm = _date.getMonth() + 1; // getMonth() is zero-based
  var dd = _date.getDate();

  return [_date.getFullYear(),
          "/",
          (mm>9 ? '' : '0') + mm,
          "/",
          (dd>9 ? '' : '0') + dd
         ].join('');
}

var date = "1/1/2010";
yyyymmdd(dte); // returns "2010/01/01"

这是我想出的一种简单的格式。可能有很多方法来处理这段代码。

这是稍微清洁的版本,稍后会向我建议。

function yyyymmdd(dte) {
  var _date = new Date(dte);
  var mm = _date.getMonth() + 1; // getMonth() is zero-based
  var dd = _date.getDate();

  return [_date.getFullYear(),
          (mm>9 ? '' : '0') + mm,
          (dd>9 ? '' : '0') + dd
         ].join('/');
}

答案 1 :(得分:0)

在Javascript中处理日期可能很痛苦,另一种解决方案是使用momentjs

可以找到该库here

然后,您可以使用.format()选项轻松格式化各种不同格式的日期:

var dateTime = new Date();
dateTime = moment(dateTime).format("YYYY/MM/DD");

答案 2 :(得分:0)

使用Datejs,您将格式传递给.toString()

示例

Date.parse('2016/1/1').toString('yyyy-MM-dd')
// "2016-01-01"

希望这有帮助。

答案 3 :(得分:0)

    var now = new Date();
    var date = now.getDate();
    var month = now.getMonth() + 1;
    var monthName = ['January', 'February', 'March', 'April', 'May', 'June', 'July','August','September', 'Octobor', 'November', 'December']
    var year = now.getFullYear();
    if (date <= 9) {
        date = '0'+ date
    }
    console.log(date + '-' + monthName[month] + '-' +year);