指定された日時のタイムゾーンを擬似的に設定します。
/**
* setTimezoneOffset() メソッドは、指定された日時のタイムゾーンを擬似的に設定し
* ます。設定後の時刻のタイムゾーンは、元の時刻のタイムゾーンのものと同じで
* す。
* @param {String} offsetString タイムゾーンオフセットを表す "+0900" や
* "-0430" のような5文字の文字列。4文字の数字からなる "0600" のような文字列
* が与えられた場合は先頭に"+"を付け加えてから処理を行います。
* @return {Number} 協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された
* 日時までの間のミリ秒単位の数値。
*/
if (!Date.prototype.setTimezoneOffset) {
Date.prototype.setTimezoneOffset = function (offsetString) {
if (offsetString.length < 4) {
return;
}
if (offsetString.length === 4) {
if (!isNaN(parseInt(offsetString.charAt(0)))) {
offsetString = "+" + offsetString;
}
else {
return;
}
}
var sign = offsetString.substr(0, 1);
var hour = parseInt(sign + offsetString.substr(1, 2));
var offset = hour * 60 + parseInt(sign + offsetString.substr(3, 2));
var utc = new Date(this.getTime() + this.getTimezoneOffset() * 60 * 1000);
return this.setTime(utc.getTime() + offset * 60 * 1000);
};
}
// 使用例
var now = new Date(); //地方時
console.log('loc',now);
var jstTime = now.setTimezoneOffset('+0900'); //jst
console.log('jst',now);
var pdtTime = now.setTimezoneOffset('-0700'); //pdt
console.log('pdt',now);