为什么没有标准的方法来格式化javascript中的日期对象?

时间:2014-12-18 11:04:52

标签: javascript date

我有一个javascript日期对象,想要像这样格式化它

2014-12-18

%Y-%m-%d类似,但我似乎无法立即找到实现这一目标的好方法。为什么javascript没有strftime函数?我怎样才能实现我的目标?

4 个答案:

答案 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吗?

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