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"));
受信形式を教えてください:2012-01-29 06:12
この質問は重複しています(参照: 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によって提案されたように、関数にいくつかの改善を追加しました(コードのコメントを優先して読みやすさを低下させました)。
Datejs のようなライブラリを使用するか、おそらく Tweet-sized 実装を使用します。
https://Gist.github.com/1005948
var str = formatDate(
new Date(),
"{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
残念ながら、JavaScriptでは、Dateにformat()メソッドがありません。
http://fisforformat.sourceforge.net をチェックして、いくつかの素晴らしいフォーマット方法を確認してください。
これはあなたを助けることができると思います: 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");