5

以下を使用して JavaScript 日付オブジェクトを作成できます。

var d=new Date('2012-08-07T07:47:46Z');
document.write(d);

これにより、ブラウザのタイムゾーンを使用して日付が書き込まれます。しかし、私はできるはずです(「Z」なし):

var d=new Date('2012-08-07T07:47:46');
document.write(d);

これは上記と同じものを返しますが、ISO8601 標準に従って、タイムゾーンなし (+01:00 など) で「Z」のない文字列の場合、日付はローカル タイム ゾーンであると見なされます。したがって、上記の 2 番目の例では、日時を午前 7:47 として記述します。

サーバーから日時文字列を取得しており、正確にその日時を表示したいと考えています。何か案は?

4

2 に答える 2

6

このスクリプトはうまく機能することがわかりました。Date.parseメソッドを拡張します。

https://github.com/csnover/js-iso8601/

Date.parse('2012-08-07T07:47:46');

new Date()ただし、コンストラクターでは機能しません。

于 2012-08-30T15:51:27.370 に答える
-1

そうです、Javascript は ISO8601 ではうまく機能しません。

この関数を使用して、目的の形式に変換します。

function ISODateString(d) {
  function pad(n){
    return n<10 ? '0'+n : n
  }
  return d.getUTCFullYear()+'-'
  + pad(d.getUTCMonth()+1)+'-'
  + pad(d.getUTCDate())+'T'
  + pad(d.getUTCHours())+':'
  + pad(d.getUTCMinutes())+':'
  + pad(d.getUTCSeconds())+'Z'
}
var d = new Date();
print(ISODateString(d));

出典: Mozilla

于 2012-08-07T10:33:16.667 に答える