厳密に PST で時刻を取得することはあまり意味がありません。太平洋時間帯では 1 年のほぼ半分が PST ではないためです。冬には PST (UTC-8)、夏には PDT (UTC-7) が観測されます。太平洋時間を単なる固定オフセットとして表現することはできません。また、それがたまたま自分のローカル タイム ゾーンでない限り、タイム ゾーン データベースがなければ、それらの間の移行を簡単に判断することはできません。timezone タグ wikiを参照してください。
また、date.js は廃止されました。その使用を継続するソリューションはお勧めできません。Dancrumb が提案した方法のサポートsetTimezone
は文化固有のものであり、夏時間はまだ考慮されていません。
代わりに、moment.jsを試すことをお勧めします。moment-timezoneアドオンを使用してゾーンを操作できますAmerica/Los_Angeles
。これは、米国太平洋時間の良い例です。moment-timezone-data.js
ファイルに少なくともこのゾーンが含まれていることを確認してください。次に、次のことができます。
var m = moment().tz('America/Los_Angeles').day(7).startOf('day');
var s = m.toISOString(); // if you need a string output representing UTC
var dt = m.toDate(); // if you need an actual JavaScript Date object
それを少し分解してみましょう:
moment()
現在の時刻を取得します
tz('America/Los_Angeles')
興味のあるタイムゾーンに時間を調整します。
day(7)
次の月曜日に時刻を進めます。
startOf('day')
時刻を真夜中に戻します。