将日期格式转换为'YYYYMMDD'

时间:2017-07-06 07:59:20

标签: javascript

在Javascript中,我有日期字符串,如下所示:

var dateStr = "Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)";

我需要将其转换为“YYYYMMDD”格式。例如,上述日期应为:"20150325"

4 个答案:

答案 0 :(得分:4)

这是一个让你入门的肮脏黑客。有许多方法可以实现您想要的格式。我去了字符串操作(这不是最好的表现)。



var someDate = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)");
var dateFormated = someDate.toISOString().substr(0,10).replace(/-/g,"");
    
alert(dateFormated);




答案 1 :(得分:3)

一个很好的功能,可以完成我发现并使用它的所有功能。

Date.prototype.yyyymmdd = function() {
var mm = this.getMonth() + 1; // getMonth() is zero-based
var dd = this.getDate();
return [this.getFullYear(),
(mm>9 ? '' : '0') + mm,
(dd>9 ? '' : '0') + dd
].join('');
};
var date = new Date();
date.yyyymmdd();

答案 2 :(得分:3)

function getFormattedDate(date) {
  var year = date.getFullYear();

  var month = (1 + date.getMonth()).toString();
  month = month.length > 1 ? month : '0' + month;

  var day = date.getDate().toString();
  day = day.length > 1 ? day : '0' + day;

  return year + month + day;
}

然后只需调用函数:

alert(getFormattedDate(new Date());

答案 3 :(得分:3)

Date对象能够将日期解析为字符串d = new Date( dateStr );,前提是它们的格式正确,就像问题中的示例一样。

Date对象还提供了从实例中提取年,月和日的方法。

这是 well documented ,如果你只是谷歌的话就有很多例子。

值得一提的是Date对象不处理时区,内部日期时间总是转换为客户的时区。

例如,如果我尝试在浏览器中解析您的日期(我在GMT + 01中),这就是我得到的:

dateStr = "Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)";
d = new Date( dateStr );

---> Wed Mar 25 2015 01:00:00 GMT+0100 (CET) = $2

如果您需要正确处理时区,最简单的方法是使用像 MomentJS

这样的库