如何将Date对象格式化为字符串?
当前回答
该模块可以轻松处理几乎所有的情况。它是一个更大的npm包的一部分,由Locutus提供,该包包含多种功能,但它可以完全独立于包本身使用,如果不使用npm(从模块更改为仅功能),只需复制粘贴/调整一点即可。
作为第二个参数,它接受时间戳,它可以来自任何地方,例如Date.getTime()。
此外,Locutus还在locatus包中维护了一个更大的datetime模块,这将提供一种更面向对象的使用方法。
在这里,您可以看到其他日期时间函数(作为模块),这些函数也非常有用。
您可以在这里找到关于参数和格式字符串的文档(注意,文档站点是一个PHP站点,但locatus实现遵循完全相同的规范)。
日期模块示例
date('H:m:s \\m \\i\\s \\m\\o\\n\\t\\h', 1062402400)//'07:09:40 m is month'
date('F j, Y, g:i a', 1062462400)//'September 2, 2003, 12:26 am'
date('Y W o', 1062462400)//'2003 36 2003'
var $x = date('Y m d', (new Date()).getTime() / 1000) $x = $x + '' var $result = $x.length // 2009 01 09 10
date('W', 1104534000) //'52'
date('B t', 1104534000) //'999 31'
date('W U', 1293750000.82); // 2010-12-31 '52 1293750000'
date('W', 1293836400); // 2011-01-01 '52'
date('W Y-m-d', 1293974054); // 2011-01-02 '52 2011-01-02'
其他回答
使用ECMAScript Edition 6(ES6/ES2015)字符串模板:
let d = new Date();
let formatted = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;
如果需要更改分隔符:
const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);
这可能有助于解决问题:
var d=新日期();var选项={day:'数字',月份:'long',年份:'数字'};console.log(d.toLocaleDateString('en-ZA',选项));
如果你想要一个简短的、人类可读的函数,这个函数很容易调整以适合你。
timeStamp参数是1970年的毫秒-它由new Date().getTime()和许多其他设备返回。。。
好吧,我改变主意了。我包含了一个额外的零填充函数。诅咒!
function zeroPad(aNumber) {
return ("0"+aNumber).slice(-2);
}
function humanTime(timeStamp) {
var M = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var D = new Date(timeStamp); // 23 Aug 2016 16:45:59 <-- Desired format.
return D.getDate() + " " + M[D.getMonth()] + " " + D.getFullYear() + " " + D.getHours() + ":" + zeroPad(d.getMinutes()) + ":" + zeroPad(D.getSeconds());
}
如果您已经在项目中使用ExtJS,则可以使用Ext.Date:
var date = new Date();
Ext.Date.format(date, "d-M-Y");
返回:
"11-Nov-2015"
有一个新的库smarti.to.js,用于JavaScript数字、日期和JSON日期的本地化格式(Microsoft或ISO8601)。
例子:
new Date('2015-1-1').to('dd.MM.yy') // Outputs 01.01.2015
"2015-01-01T10:11:12.123Z".to('dd.MM.yy') // Outputs 01.01.2015
本地化文件(smarti.to.{culture}.js)中也定义了自定义的短模式。示例(smarti.to.etEE.js):
new Date('2015-1-1').to('d') // Outputs 1.01.2015
以及多样性能力:
smarti.format('{0:n2} + {1:n2} = {2:n2}', 1, 2, 3) // Output: 1,00 + 2,00 = 3,00