web-dev-qa-db-ja.com

Nodejsでタイムゾーンオフセットを使用する方法は?

次のフローが必要です:

var a = new Date(1337324400000, 'Europe/Amsterdam'); //+2h
console.log(a); // for example 12:00 Mon ...
a.setTimeZone('Europe/Kiev'); //+3h
console.log(a); // 13:00 Mon ...

Nodejs utils apiにそのような可能性はありますか?

22
Oleg Dats

次のように node-time を使用できます。

var time = require('time');

var a = new time.Date(1337324400000);

a.setTimezone('Europe/Amsterdam');
console.log(a.toString()); // Fri May 18 2012 09:00:00 GMT+0200 (CEST)
a.setTimezone('Europe/Kiev');
console.log(a.toString()); // Fri May 18 2012 10:00:00 GMT+0300 (EEST)
33

Moment.jsにMoment Timezoneが追加されました

インストール

npm install --save moment-timezone

使用

var Moment = require('moment-timezone');
Moment().tz('America/Los_Angeles').format();
15
pixelfreak

更新:もう1つあります:) https://github.com/mde/timezone-js

ストックJavaScript日付のタイムゾーン対応のドロップイン置換。 timezoneJS.Dateオブジェクトは、同じゲッターメソッドとセッターメソッドを備えたJS DateとAPI互換であり、通常のJavaScript日付で機能するコードで正常に動作するはずです。


いいえ、ありません

ただし、moment.jsを使用して簡単にすることができます http://momentjs.com/docs/

あなたはまだ各オフセットを知る必要があるので、{"Europe/Amsterdam":2,"Europe/Kiev":3}のようなマッピングが必要になります

6
Eldar Djafarov

NpmのTimezoneパッケージを参照してください。必要なものがすべて組み込まれ、純粋なJSであり、利用可能な最高のタイムゾーン処理ライブラリのようです。

https://www.npmjs.com/package/timezone

http://bigeasy.github.io/timezone/

var tz = require('timezone/loaded'),
    equal = require('assert').equal,
    utc;

// Get POSIX time in UTC. 
utc = tz('2012-01-01');

// Convert UTC time to local time in a localize language. 
equal(tz(utc, '%c', 'fr_FR', 'America/Montreal'),
      'sam. 31 déc. 2011 19:00:00 EST');
  • タイムゾーンは、タイムゾーンを認識する日付の数学と日付のフォーマットを提供する、依存関係のない純粋なJavaScriptのMicroJSライブラリです。
  • タイムゾーンは、IANAデータベースを使用して、標準化された時間の夜明け以来、世界のどこでも正しい壁時計時間を決定します。
  • タイムゾーンは、GNU日付拡張を含むstrftime形式の完全な実装で日付を形式化します。
  • タイムゾーンは、RFC 3999日付文字列を使用して、POSIX時間と現地時間で時間を表します。
  • タイムゾーンは、3K未満で圧縮およびgzip圧縮された、純粋なJavaScriptのフル機能標準ベースのタイムライブラリです。
2
Samuel Neff

Moment-timezone.jsを使用します。異なるタイムゾーンで時間を解析、検証、変更するのに最適なオプションです。

0
Sudhakar Reddy