文字列の最後のタイムゾーンを表示するためにフォーマットでzまたはzzを使用しようとしましたが、それが非推奨であることがわかりました。 ZおよびZZは-0700を表示するように機能しますが、代わりにPDTを表示します。
Moment-timezoneとデータファイルを取得しましたが、それを使用してクライアントのローカルタイムゾーンを特定し、次のようなものを表示する方法を理解できません。
2014-05-30T22:56:23.967 PDT
の代わりに:
2014-05-30T22:56:23.967
EST CST ... MST PSTを決定するためにモーメントタイムゾーンを使用することは可能ですか?
Moment-timezone 0.1.0以降は、 フォーマットの追加 を使用して、固有のタイムゾーンの省略形を取得できます。
moment().tz("America/Los_Angeles").format('z'); // PST or PDT
バージョン0.5.0の時点で ユーザーのlocalタイムゾーン を推測できるようになりました。上記の手法と組み合わせると、次のことができます。
moment().tz(moment.tz.guess()).format('z');
推測が正しいと仮定すると、関連する略語が表示されます。
おそらくこれは良い方法ではありませんが、プロジェクトにローカルタイムゾーンのスクリプトを追加したくなかったので、モーメントオブジェクトを調査し、以下に記述したコードでローカルタイムゾーンを取得します。
var test = momentUpdateDate._d.toString().substring(test.indexOf('(')+1, test.indexOf(')'));
2020年更新
過去5年間で、これは機能しなくなりました。今試してください:
var timeZone = moment.tz.guess();
var time = new Date();
var timeZoneOffset = time.getTimezoneOffset();
moment.tz.zone(timeZone).abbr(timeZoneOffset);
最新の moment timezone docs から
moment.tz(String).format("Z z"); // -08:00 PST
moment.tz(String).zoneAbbr(); // PST
moment.tz(String).zoneName(); // PST
いくつかの例:
moment.tz(moment.tz.guess()).zoneAbbr(); // PST
moment.tz("America/New_York").zoneAbbr(); // EST