在jQuery中格式化日期

Mar*_*ndy 9 javascript jquery datetime

var date = "Fri Jan 29 2012 06:12:00 GMT+0100";
Run Code Online (Sandbox Code Playgroud)

我怎么能以2012-01-29 06:12的格式显示这个?在PHP中是函数 - >格式.在Javascript也是格式,但如果我尝试使用这个,那么我有错误:

now.format不是一个函数

var now = new Date();
console.log(now.format("isoDateTime"));
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/6v9hD/

我想收到格式: 2012-01-29 06:12

Tad*_*eck 23

这个问题是重复的(请参阅:如何在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;
Run Code Online (Sandbox Code Playgroud)

请参阅此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);
}
Run Code Online (Sandbox Code Playgroud)

并使用它:

getISODateTime(new Date());
Run Code Online (Sandbox Code Playgroud)

要么:

getISODateTime(some_other_date);
Run Code Online (Sandbox Code Playgroud)

编辑:我已经添加了一些改进功能,如Ates Goral所提出的(也降低了它的可读性,支持代码注释).


Mar*_*ett 6

Datejs.toString('yyyy-MM-dd HH:mm')应该可以解决问题