这个问题是重复的(参见:jquery 如何获取当前日期?).
通过修改我的解决方案从另一个问题中,我得到:
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/
您还可以将其包含在函数中(演示位于此处: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());
or:
getISODateTime(some_other_date);
EDIT:我按照 Ates Goral 的建议对该函数进行了一些改进(还降低了其可读性以支持代码注释)。