如何在 DateTime 中添加零
如果小时、分钟和秒小于 9,我们应该做另外的工作来在 DateTime 中添加前导零。
我们应该添加一个自定义方法来在 DateTime 中添加前导零:
function addLeadingZeros(n) { if (n <= 9) { return "0" + n; } return n } let currentDatetime = new Date() console.log(currentDatetime.toString()); let formattedDate = currentDatetime.getFullYear() + "-" + addLeadingZeros(currentDatetime.getMonth() + 1) + "-" + addLeadingZeros(currentDatetime.getDate()) + " " + addLeadingZeros(currentDatetime.getHours()) + ":" + addLeadingZeros(currentDatetime.getMinutes()) + ":" + addLeadingZeros(currentDatetime.getSeconds()) console.log(formattedDate);
Date 对象用于在 JavaScript 中表示日期和时间。
它包括两者。
通常,月份从零开始,以 11 结束。
工作日也从零开始计算。
在 JavaScript 中,日期可能会被减去并以毫秒为单位给出它们的差异,因为日期在转换为数字时会转换为时间戳。
时间戳以毫秒为单位,而不是秒。
Dateformat方法
dateformat 与前面的方法类似,它使用标记字符串格式化日期。
如果浏览器端 datetime 将扩展 Date 对象以具有 .format() 方法:
today = new Date(); today.format('dd-m-yy'); //Returns '02-8-16'
但是,它与 Node.js 版本的工作方式不同。
我们应该使用 dateformat 作为方法并传递 Date 对象:
const dateformat = require('dateformat'); let now = new Date(); dateformat(now, 'dddd, mmmm dS, yyyy, h:MM:ss TT'); 'Tuesday, Nov 2nd, 2016, 4:30:20 PM'
Date.toLocaleString() 方法
这是一种非标准方法,但有时,这可能是唯一的选择。
此方法仅在某些浏览器的更高版本中支持。
尽管如此,在 Node 的情况下,它可能是一个不错的选择。
与上述两种方法不同,Date.toLocaleString() 不使用令牌字符串。
它使用一个选项对象,其中可以配置日期的每个部分。
格式化可以通过 .toLocaleString() 完成:
let today = new Date(); today.toLocaleFormat('%d-%b-%Y'); //30-Jun-2016
Moment.js 方法
Moment.js 是最好的日期/时间库之一。
它易于使用、有据可查,并且尺寸缩小 (20kb)。
它可以与 Node.js 和 JavaScript 一起运行,这很棒,因为我们不必学习几个用于前端和后端编程的日期/时间库。
moment().format('YYYY-MM-DD HH:m:s'); //now() -> 2016-03-20 14:32:20 moment("20141031", "YYYYMMDD").fromNow(); //3 years ago moment("20150620", "YYYYMMDD").fromNow(); //3 years ago moment().startOf('day').fromNow(); //11 hours ago moment().endOf('day').fromNow(); //in 13 hours
.format() 方法构造了一个标记字符串,这些标记引用日期的特定组件(如日、月、分钟或者上午/下午)。
格式化 JavaScript 日期是很常见的事情。
相当多的申请日期是用 JavaScript 代码格式化的。
有一些方法和库用于格式化日期。
让我们分别考虑它们中的每一个。