var date = "Fri Jan 29 2012 06:12:00 GMT+0100";
如何以 2012-01-29 06:12 的格式显示此内容? 在PHP中是函数 - >格式。在Javascript也是格式,但如果我尝试使用这个,那么我有错误:
now.format不是函数
var now = new Date();
console.log(now.format("isoDateTime"));
我想收到格式: 2012-01-29 06:12
答案 0 :(得分:23)
这个问题是重复的(参见:How to get current date in jquery?)。
通过修改my solution来自其他问题,我得到了:
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
请参阅此jsfiddle以获取证明:http://jsfiddle.net/nCE9u/3/
你也可以将它包含在函数中(demo在这里:http://jsfiddle.net/nCE9u/4/):
function getISODateTime(d){
// padding function
var s = function(a,b){return(1e15+a+"").slice(-b)};
// default date parameter
if (typeof d === 'undefined'){
d = new Date();
};
// return ISO datetime
return d.getFullYear() + '-' +
s(d.getMonth()+1,2) + '-' +
s(d.getDate(),2) + ' ' +
s(d.getHours(),2) + ':' +
s(d.getMinutes(),2) + ':' +
s(d.getSeconds(),2);
}
并使用它:
getISODateTime(new Date());
或:
getISODateTime(some_other_date);
编辑:我已经为Ates Goral提出了一些改进功能(也降低了它的可读性,支持代码注释)。
答案 1 :(得分:6)
答案 2 :(得分:3)
不幸的是,在Javascript中,Date没有format()方法。
查看http://fisforformat.sourceforge.net以获取一些不错的格式化方法。
答案 3 :(得分:3)
使用类似Datejs或此tweet-sized实施的库:
https://gist.github.com/1005948
var str = formatDate(
new Date(),
"{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
答案 4 :(得分:0)
我认为这可以帮到你:date.format.js
var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
now.format("isoDateTime");
答案 5 :(得分:0)