私はしばらくの間、momentjsとmoment-timezoneを使用しています。今日、isAfter
メソッドを使用して日付比較を使用していましたが、私は奇妙な動作を発見しました。momentjsとタイムゾーンとの比較
1つの瞬間の日付がタイムゾーンの値で構成されていて、それ以外のものが日付の比較の動作であるとします。
私の場合、エポックタイムを特定のタイムゾーン値に1つの日付に変換しています。他の日付は、タイムゾーンの値を指定せずにyyyy-mm-ddの形式です。私はこれらの2日間を比較しているとき、同じ日の価値に失敗しています。理想的には
//Wed Sep 27 2017 01:13:04 GMT-0700
var localtime = moment(1506499984924).tz("America/Los_Angeles");
//Wed Sep 27 2017 00:00:00
var date = moment('2017-09-27');
//returns true
var value = localtime.isAfter(date, 'day');
両方の日付が2017年9月27日なので、それはfalseを返す必要があります。 代わりにdiff
メソッドを使用すると、isAfter
がtrueを返します。
この問題を解決するお手伝いがあります。あなたのコードではMoment
大丈夫です。ですから、デフォルトのタイムゾーン 'moment.tz.setDefault(" America/Los_Angeles ");を初期化してからdateモーメントを作成すると、' false'という出力が出ます。これはこの問題を解決する正しい方法ですか? – jarvis
あなたが達成しようとしていることを正確には分かっていないので、問題が解決するかどうかは言えません。 –