在Javascript中,我有日期字符串,如下所示:
var dateStr = "Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)";
我需要将其转换为“YYYYMMDD”格式。例如,上述日期应为:"20150325"
答案 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
这样的库