2013-08-31 9 views
5

javascriptクライアントからサービスを休止するためにUTCタイムスタンプを送信しようとしています。私は"2013-08-30T19:52:28.226Z"のようなタイムスタンプをjavascriptを使って作成することができませんでした。JavaScriptでUTCタイムスタンプを作成する

var rawDate = date.getUTCDate().toString(); 

この例は表示されていますが、私にとっては役に立ちません。 utc-time-stame-javascript

+0

「新しい日付()」を意味しましたか?これは、Dateオブジェクトのすべてのプロパティを含む現在の日付を返す(new Date())。toJSON()は動作するはずです –

+0

私の質問は2013-08-31T9:4:51.859 Z in js –

+0

新しい日付()。toJSON()が返す2013-08-31T09:04:51.863Z –

答えて

8

date.toJSON()を使用できます。

new Date().toJSON().toString() 
"2013-08-31T09:05:07.740Z" 

は、日付を取得します)MDNまたはMSDN

+0

私の欲望の結果を見る2013-08-31T9:9:55.893Z –

+0

Oh ow。 W3学校のリンク?ここでは、関数について議論するより良いリソースがあります:[MDN Date#toJSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON?redirectlocale=en-US&redirectslug=JavaScript %2FReference%2FGlobal_Objects%2FDate%2FtoJSON) –

+0

W3スクールの問題点は何ですか? –

0

1を参照してください。

var now = new Date(); 

2)referenceの場合は、次のようにUTC形式に変換してください。

var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), 
        now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()); 

3)toJSONを使用して、フォーマットを取得します。テストされていないこのJSFiddle

+0

not utc time .. 2013-08-31T03:44:49.000Z –

1
function getUTCISODateString(d){ 
    function pad(n){return n<10 ? '0'+n : n}; 
    function threePad(n){return n<10 ? '00'+n : (n < 100 ? '0' + n : n)}; 
    return d.getUTCFullYear()+'-' 
      + pad(d.getUTCMonth()+1)+'-' 
      + pad(d.getUTCDate())+'T' 
      + pad(d.getUTCHours())+':' 
      + pad(d.getUTCMinutes())+':' 
      + pad(d.getUTCSeconds())+ '.' 
        + threePad(d.getUTCSeconds()) + 'Z'; 
} 

now_utc.toJSON() 

最後に、

var now = new Date(); 
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()); 
alert(now_utc.toJSON()); 

チェック:

+0

'new Date().JSON()' –

+0

@izurielはいIE7がターゲットにされていない場合のofcourse。 – sabithpocker

+0

IE7がサポートに懸念があったなら、[json2](https://github.com/douglascrockford/JSON-js)のようなライブラリを持って、その機能を 'Date'にpolyfillし、' JSON.stringify 'と' JSON.parse'です。 –

0

このライブラリには、あなたのためにそれを行うことができます。その大きなではないのいずれかhttp://momentjs.com

moment().toISOString() 
// 2013-02-04T22:44:30.652Z 
+0

フォーマットがオフです。彼の要求には、タイムゾーンの前に追加されたミリ秒が必要です。 –

+0

@izuriel答えを更新しました、ライブラリはどんなフォーマットでもあります –

+0

より多くの日付処理が必要な場合を除いて、ここに(偉大な図書館の中で)「瞬間」を含めることは不要です。 Benoit Blanchonの回答によれば、これは 'new Date()。toJSON()'でネイティブに達成できますが、 'JSON.stringify({post_date:new Date()});でさらに簡単になり、自動的に呼び出されます。私は以前これを言及していたはずですが、アップデートでうまいです! –

0

私は自分自身を日付()オブジェクトを拡張し、文字列を構築することをお勧めし、今はあなたのためにそれを行いますが、私はそれはあなたが必要な正確な形式でだか分かりません。これをすばやく書きましたが、それはまともな始動ボイラープレートでなければなりません。

Date.prototype.toLongUTCString = function() { 
    var self = this; 
    return self.getUTCFullYear() + '-' + (self.getUTCMonth() < 10 ? '0' : '') + 
      (self.getUTCMonth() +1)+ '-' + (self.getUTCDate() < 10 ? '0' : '') + 
      self.getUTCDate() + 'T' + self.getUTCHours() + ':' + self.getUTCMinutes() + 
      ':' + self.getUTCSeconds() + '.' + self.getUTCMilliseconds() + 'Z'; 
    }; 

もっと見る:

http://jsfiddle.net/4Kczy/

/編集:サポートするブラウザが必要なものを尋ねるためにわざわざ誰(咳、IEを)。

+0

この機能は' Date'クラスに追加することができますし、 'JSON2 ' https://github.com/douglascrockford/JSON-js)ライブラリところで、一般的な経験則は、できるだけコアクラスを拡張することを避けています。 –

+0

@izuriel - あなたが何を拡張しているかによって異なります。この関数はコア仕様では決して実装されません(map/filter/reduceはIEの将来のある時点で実装されるかもしれません)。 json2 libについては、ブランチを切り落とすためにチェーンソーが必要なわけではありません。乾杯! – konp

関連する問題