我正在尝试使用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的回答的评论的回应。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3168356