使用NodeJS,我想格式化一个
转换为以下字符串格式:
var ts_hms = new Date(UTC);
ts_hms.format("%Y-%m-%d %H:%M:%S");
我该怎么做呢?
发布于 2012-11-04 22:57:22
如果你使用的是Node.js,你肯定会有EcmaScript 5,所以Date有一个
方法。您正在请求对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'
或者,在一行代码中:
ISO8601必须是UTC (也由第一个结果中的Z表示),所以默认情况下会得到UTC (这总是一件好事)。
发布于 2013-08-29 18:50:22
有一个用于转换的库:
npm install dateformat
然后写下你的需求:
var dateFormat = require('dateformat');
然后绑定值:
var day=dateFormat(new Date(), "yyyy-mm-dd h:MM:ss");
请参见
日期格式
发布于 2012-05-18 13:41:14
一般来说,我并不反对图书馆。在这种情况下,通用库似乎有点过头了,除非应用程序进程的其他部分日期很长。
编写像这样的小实用函数对于初学者和熟练程序员来说都是一种有用的练习,对于我们中的新手来说也是一种学习经验。
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" */
https://stackoverflow.com/questions/10645994
复制相似问题