2

「2011 年クリスマスのロサンゼルスの真夜中」のような時刻の Date オブジェクトを作成できるようにしたいと考えています。

私は素晴らしいmoment.jsとさらに優れたmoment-timezoneを使用しましたが、デフォルトの Date クラスも moment コンストラクタも引数としてタイムゾーンを取りません。

次のように、フォーマットされた RFC2822 文字列を使用してそれをごまかすことができました。

 d = new Date("12-25-2011 PST")

...しかし、12 月 25 日が標準時間であることを知っている必要があります。これは別の答えを与えます:

d = new Date("12-25-2011 PDT")

理想的には、「America/Los_Angeles」のような地理的なスタイルのタイムゾーンを使用したいと思います.

4

2 に答える 2

1

OK、私はこれを行う方法を知っていると思います。npmの優れたタイムゾーンパッケージを使用しています。大まかなアイデアは次のとおりです。

var tz = require("timezone");

var dateInZone = function(dt, zone) {
    return new Date(tz(dt, zone, require("timezone/"+zone), "%FT%T%^z"));
};

console.log(dateInZone([2011, 12, 25], "America/Los_Angeles"));
于 2013-10-22T13:42:14.447 に答える
1

moment-timezone #11および#25を参照してください。

GitHub ソースから最新の開発を入手した場合は、次のことができます。

moment.tz('2011-12-25T00:00:00','America/Los_Angeles').utc().format()

まだリリースされていない唯一の理由は、 #27に従って、あいまいまたは無効な入力をどうするかをまだ決定しているためです。

于 2013-10-21T21:41:22.660 に答える