以下のコードを見てください。以下の変数targetTime
にタイムゾーンの差を加算または減算する最適な方法は何ですか? GMTのタイムゾーン値は、この形式のDBから取得されます。ロンドン時間は1.00
、Pasific時間は-8.00
などです。タイムゾーンの差分をjavascriptに加算または減算する日付
コードは次のようになります。
はdate = "September 21, 2011 00:00:00";
targetTime = new Date(date);
以下のコードを見てください。以下の変数targetTime
にタイムゾーンの差を加算または減算する最適な方法は何ですか? GMTのタイムゾーン値は、この形式のDBから取得されます。ロンドン時間は1.00
、Pasific時間は-8.00
などです。タイムゾーンの差分をjavascriptに加算または減算する日付
コードは次のようになります。
はdate = "September 21, 2011 00:00:00";
targetTime = new Date(date);
ローカル分でGMTからのオフセットを返しますDate.getTimezoneOffsetを使用することができます。期待どおりの正負の値を返します。したがって、GMT-5は300、GMT + 1は-60です。私の作品
var date = "September 21, 2011 00:00:00";
var targetTime = new Date(date);
var timeZoneFromDB = -7.00; //time zone value from database
//get the timezone offset from local time in minutes
var tzDifference = timeZoneFromDB * 60 + targetTime.getTimezoneOffset();
//convert the offset to milliseconds, add to targetTime, and make a new Date
var offsetTime = new Date(targetTime.getTime() + tzDifference * 60 * 1000);
シンプルな機能:
adjustForTimezone(date:Date):Date{
var timeOffsetInMS:number = date.getTimezoneOffset() * 60000;
date.setTime(date.getTime() - timeOffsetInMS);
return date
}
これが正しいだろうが、それはあなたの国で夏時間がどのようであれば、あなたGMTは+2を言っていた場合、今、それが今になります+ 1 – halliewuud
getTimezoneOffset夏時間のアカウントです。 GMT-5の米国東部時間帯ですが、夏時間のGMT-4です。私のブラウザでgetTimezoneOffsetを呼び出すと、私はGMT-4である240を取得します。それは、もちろん、現地時間での夏時間の処理だけを処理します。 DBからのタイムゾーンオフセットは、バックエンドのDSTに対して調整する必要があります。 – alexp