web-dev-qa-db-ja.com

jQueryで日付をフォーマットする

var date = "Fri Jan 29 2012 06:12:00 GMT+0100";

これを2012-01-29 06:12の形式で表示するにはどうすればよいですか? PHP is function-> formatです。JavaScriptもフォーマットですが、これを使用しようとするとエラーが発生します。

now.formatは関数ではありません

var now = new Date();
console.log(now.format("isoDateTime"));

http://jsfiddle.net/6v9hD/

受信形式を教えてください:2012-01-29 06:12

9
Mark Fondy

この質問は重複しています(参照: 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/

関数で囲むこともできます(デモはこちら: 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);

EDIT:Ates Goralによって提案されたように、関数にいくつかの改善を追加しました(コードのコメントを優先して読みやすさを低下させました)。

23
Tadeck

Datejs . toString ( 'yyyy-MM-dd HH:mm')がうまくいくはずです

6
Mark Brackett

Datejs のようなライブラリを使用するか、おそらく Tweet-sized 実装を使用します。

https://Gist.github.com/1005948

var str = formatDate(
    new Date(),
    "{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
3
Ates Goral

残念ながら、JavaScriptでは、Dateにformat()メソッドがありません。

http://fisforformat.sourceforge.net をチェックして、いくつかの素晴らしいフォーマット方法を確認してください。

3
GreyBeardedGeek

次のようなものを使用できます(include date.js ):

Date.parse(yourDate).toISOString();

そのため、日付はISO 8601形式になります。

0
Condemateguadua

これはあなたを助けることができると思います: 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");
0
helloyou