46

ISO形式のようにjavascriptの日付をフォーマットするにはどうすればよいですか?

myDate.toISOString()「2012-09-13T19:12:23.826Z」のように時間を取得しています

しかし、ここでは22:13なので、上記の形式にタイムゾーンを含めるにはどうすればよいですか?


結局やってしまった…

pad=function(e,t,n){n=n||"0",t=t||2;while((""+e).length<t)e=n+e;return e}
c = new Date()
c.getFullYear()+"-"+pad(c.getMonth()+1)+"-"+pad(c.getDate()-5)+"T"+c.toLocaleTimeString().replace(/\D/g,':')+"."+pad(c.getMilliseconds(),3)
4

11 に答える 11

20

少しハックですが、スウェーデンが ISO に非常に近い形式を使用しているという事実を利用して、1 行で実行できます。

// Returns a string like 2021-01-17T01:59:57
function dateToISOButLocal(date) {
    return date.toLocaleString('sv').replace(' ', 'T');
}
于 2021-01-17T07:01:26.410 に答える
6

私の知る限り、JavaScriptで日付をフォーマットすることはできません(外部ライブラリを使用しない場合)。あなたができる最善のことは、「自分でフォーマットする」ことです。つまり:

var date = new Date();
var year = date.getFullYear();
var month = date......


var ISOdate = year + "-" + month + "-" + .... ;

しかし、日付をフォーマットできる優れたライブラリがいくつかあります。(「フォーマット」を のように読みますlibrary.getDate("YYYY-MM-DD.........");)

編集:

Moment.js はあなたが探しているもののようです: http://momentjs.com/

于 2012-09-13T19:21:12.713 に答える
0

ISO 8601は単に日付をフォーマットする方法であり、任意のタイム ゾーンに適用できます。

オブジェクトのメソッドのtimeZoneオプションを試しましたか?DatetoLocaleString

この質問には、例を含む回答があります。

于 2020-09-07T01:44:45.143 に答える