使用 NodeJS,我想将 a 格式化Date
为以下字符串格式:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
我怎么做?
使用 NodeJS,我想将 a 格式化Date
为以下字符串格式:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
我怎么做?
如果你使用 Node.js,你肯定有 EcmaScript 5,所以 Date 有一个toISOString
方法。您要求对 ISO8601 稍作修改:
new Date().toISOString()
> '2012-11-04T14:51:06.157Z'
所以只要删掉一些东西,你就准备好了:
new Date().toISOString().
replace(/T/, ' '). // replace T with a space
replace(/\..+/, '') // delete the dot and everything after
> '2012-11-04 14:55:45'
或者,在一行中: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
ISO8601 必须是 UTC(也由第一个结果的尾随 Z 表示),因此默认情况下您会获得 UTC(总是一件好事)。
2021-10-06 更新:添加了 Day.js 并删除了@ashleedawg 的虚假编辑 2021-04-07
更新:@Tampa 添加了 Luxon。
更新 2021-02-28:现在应该注意 Moment.js 不再被积极开发。它不会很快消失,因为它嵌入在许多其他事物中。该网站有一些替代方案的建议以及原因的解释。
2017-03-29 更新:添加了 date-fns、关于 Moment 和 Datejs 的一些注释
2016-09-14 更新:添加了 SugarJS,它似乎具有一些出色的日期/时间功能。
好吧,既然没有人真正提供过实际的答案,这里是我的。
图书馆无疑是以标准方式处理日期和时间的最佳选择。日期/时间计算中有很多边缘情况,因此能够将开发移交给库很有用。
以下是主要的Node兼容时间格式库的列表:
还有非节点库:
有一个用于转换的库:
npm install dateformat
然后写出你的需求:
var dateFormat = require('dateformat');
然后绑定值:
var day=dateFormat(new Date(), "yyyy-mm-dd h:MM:ss");
见日期格式
我一般不反对图书馆。在这种情况下,通用库似乎过大了,除非申请过程的其他部分过时了。
编写像这样的小型实用程序函数对于初学者和有经验的程序员来说也是一种有用的练习,并且可以成为我们中间的新手的学习经验。
function dateFormat (date, fstr, utc) {
utc = utc ? 'getUTC' : 'get';
return fstr.replace (/%[YmdHMS]/g, function (m) {
switch (m) {
case '%Y': return date[utc + 'FullYear'] (); // no leading zeros required
case '%m': m = 1 + date[utc + 'Month'] (); break;
case '%d': m = date[utc + 'Date'] (); break;
case '%H': m = date[utc + 'Hours'] (); break;
case '%M': m = date[utc + 'Minutes'] (); break;
case '%S': m = date[utc + 'Seconds'] (); break;
default: return m.slice (1); // unknown code, remove %
}
// add leading zero if required
return ('0' + m).slice (-2);
});
}
/* dateFormat (new Date (), "%Y-%m-%d %H:%M:%S", true) returns
"2012-05-18 05:37:21" */
以您想要的格式获取时间戳的易于阅读和可定制的方式,无需使用任何库:
function timestamp(){
function pad(n) {return n<10 ? "0"+n : n}
d=new Date()
dash="-"
colon=":"
return d.getFullYear()+dash+
pad(d.getMonth()+1)+dash+
pad(d.getDate())+" "+
pad(d.getHours())+colon+
pad(d.getMinutes())+colon+
pad(d.getSeconds())
}
(如果您需要 UTC 格式的时间,则只需更改函数调用。例如“getMonth”变为“getUTCMonth”)