2016-07-06 7 views
-1

ここまで私が持っているコードはあります。 = 13:22日付/時刻を変更せずにUTC日付をISOString形式に変換するにはどうすればよいですか?

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

now >>> Wed Jul 06 2016 21:22:20 GMT+0800 
now_utc >>> Wed Jul 06 2016 13:22:20 GMT+0800 (Malay Peninsula Standard Time) 
isoDate1 >>> "2016-07-06T05:22:20.000Z" 

現在のUTC時刻は、私の問題はisoDate1はこのように見て、私は期待して必要である:

2016-07-06T13:22:20.000Z 

に変換されたときnow_utcは正しいがいるようですiso形式に変更されます。

誰でも私にこれに関するアドバイスをいただけますか?

答えて

1

new Date(...)常に現地時間として渡された日付/時間でそれを構築し、toISOStringは、あなたがしているので、行動をISO形式だけでなく、あなたが構築現地時間のUTC相当の両方を与えます表示 - now_utcの出力がGMT+0800であることに注意してください。これはGMT/UTCから+8時間オフセットされた現地時間です。

あなたは、単にISO文字列として現在のUTC時刻を取得するためにこれを行うことができるようになります。

(new Date()).toISOString(); //"2016-07-06T13:39:50.432Z" 
関連する問題