2016/04/09

【JavaScript】GMT・UTCとローカル時刻を変換にハマりかけた

サーバサイドではグリニッジ標準時を使っていて、クライアントサイドではローカル時刻(日本なら+09:00)を表示したいときに、どうやって相互変換するか考えているときにハマりかけた。

いろいろ考えた結果、getTimezoneOffsetで時差を求めて、その分時間を進めたり、戻したりすればいいのかという結論にたどり着いたのだが、もっと簡単な方法を見つけたのでまとめておく。



ローカル時刻 から グリニッジ標準時(GMT)や協定世界時(UTC) に変換する


var date = new Date('2016-04-01 05:00:00+09:00');
date.toUTCString();
// → "Thu, 31 Mar 2016 20:00:00 GMT"

// 年: 2016
date.getUTCFullYear();

// 月: 3
date.getUTCMonth() + 1;

// 日: 31
date.getUTCDate();

// 時: 20
date.getUTCHours();

// 分: 0
date.getUTCMinutes();

// 秒: 0
date.getUTCSeconds();

※ getMonthはゼロ始まりなので、+1する必要がある。



グリニッジ標準時(GMT)や協定世界時(UTC) から ローカル時刻 に変換する


var date = new Date('2016-03-31 20:00:00+00:00');
date.toUTCString();
// → "Thu, 31 Mar 2016 20:00:00 GMT"

// 年: 2016
date.getFullYear();

// 月: 4
date.getMonth() + 1;

// 日: 1
date.getDate();

// 時: 5
date.getHours();

// 分: 0
date.getMinutes();

// 秒: 0
date.getSeconds();



参考サイト






以上

written by @bc_rikko

0 件のコメント :

コメントを投稿