我有一个javascript日期对象,想要像这样格式化它
2014-12-18
与%Y-%m-%d
类似,但我似乎无法立即找到实现这一目标的好方法。为什么javascript没有strftime函数?我怎样才能实现我的目标?
答案 0 :(得分:6)
无需使用外部库:
var now = new Date();
var s = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate();
alert(s); // 2014-12-18
说明:
getFullYear()
为您提供4位数的年份
getMonth()
为您提供月份(从0开始,这就是您必须添加1的原因)
getDate()
为您提供月中的某一天
答案 1 :(得分:2)
你试过Moment.js吗?
安装
bower install moment --save # bower
npm install moment --save # npm
Install-Package Moment.js # NuGet
格式日期
moment().format('MMMM Do YYYY, h:mm:ss a'); // December 18th 2014, 2:08:59 pm
moment().format('dddd'); // Thursday
moment().format("MMM Do YY"); // Dec 18th 14
moment().format('YYYY [escaped] YYYY'); // 2014 escaped 2014
moment().format(); // 2014-12-18T14:08:59+01:00
以下是docs
答案 2 :(得分:1)
您可以使用库moment
。缺少日期格式化功能背后没有充分的理由。
This answer包含在vanilla JS中将日期格式化为%Y-%m-%d
的代码。
答案 3 :(得分:0)
基于helpermethod的答案,这是一种用0填充的月份和日期来实现的方法:
function pad(num) {
return (num >= 10 ? '' : '0') + num;
}
const now = new Date();
const s = now.getFullYear() + '-' + pad(now.getMonth() + 1) + '-' + pad(now.getDate());
alert(s); // 2020-04-08