从JS日期对象获取YYYYMMDD格式的字符串?

吃可爱长大的小学妹 提交于 2020-02-26 15:10:37

我正在尝试使用JS将date object转换为YYYYMMDD格式的字符串。 有没有比串联Date.getYear()Date.getMonth()Date.getDay()更简单的方法?


#1楼

我不喜欢添加原型。 一种替代方法是:

var rightNow = new Date(); var res = rightNow.toISOString().slice(0,10).replace(/-/g,""); <!-- Next line is for code snippet output only --> document.body.innerHTML += res;


#2楼

如果您不需要纯粹的JS解决方案,则可以使用jQuery UI来完成以下工作:

$.datepicker.formatDate('yymmdd', new Date());

我通常不喜欢导入太多库。 但是jQuery UI非常有用,您可能会在项目的其他地方使用它。

访问http://api.jqueryui.com/datepicker/了解更多示例


#3楼

如果您不介意包括其他(但很小)的库, Sugar.js提供了许多不错的功能来处理JavaScript中的日期 。 要格式化日期,请使用格式化功能:

new Date().format("{yyyy}{MM}{dd}")

#4楼

我不喜欢修改本机对象,而且我认为乘法比填充接受的解决方案的字符串更清晰。

function yyyymmdd(dateIn) { var yyyy = dateIn.getFullYear(); var mm = dateIn.getMonth() + 1; // getMonth() is zero-based var dd = dateIn.getDate(); return String(10000 * yyyy + 100 * mm + dd); // Leading zeros for mm and dd } var today = new Date(); console.log(yyyymmdd(today));

小提琴: http//jsfiddle.net/gbdarren/Ew7Y4/


#5楼

普通JS(ES5)解决方案,没有因UTC中的Date.toISOString()打印而引起的任何可能的日期跳转问题:

var now = new Date();
var todayUTC = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
return todayUTC.toISOString().slice(0, 10).replace(/-/g, '');

这是对@weberste对@Pierre Guilbert的回答的评论的回应。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!