在jQuery中格式化日期

时间:2012-01-29 03:49:41

标签: javascript jquery datetime

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"));

http://jsfiddle.net/6v9hD/

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

6 个答案:

答案 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)

DatejstoString('yyyy-MM-dd HH:mm')应该做的伎俩

答案 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)

你可以使用这样的东西(包括date.js):

Date.parse(yourDate).toISOString();

所以日期将采用ISO 8601格式。