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

Why isn't there a standard way to format a date object in javascript?

本文关键字:javascript 格式化 对象 日期 方法 标准 一种 为什么      更新时间:2023-09-26

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

2014-12-18

喜欢%Y-%m-%d但我似乎找不到"一次实现这一目标的好方法。为什么javascript没有strftime函数?我怎样才能实现我想要的?

无需使用外部库:

var now = new Date();
var s = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate();
alert(s); // 2014-12-18

解释:

getFullYear()为您提供 4 位数的年份

getMonth()给你月份(从0开始,这就是为什么你必须添加1(

getDate()为您提供月份中的某天

您可以使用库moment。缺少日期格式设置功能背后没有充分的理由。

此答案包含将日期格式化为原版 JS 中%Y-%m-%d的代码。

你试过Moment吗.js ?

时刻.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

这是文档

根据帮助方法的答案,这里有一种方法可以用 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