私は私がタイムゾーン値「PDT」を抽出したいからモーメントオブジェクトからタイムゾーン値を取得するにはどうすればよいですか?
以下
のような瞬間のオブジェクトを持っています。 私はこの値を瞬間を使って得ることができますか?
私は
moment.tz(this.startDate.toString()).zoneAbbr();
を試してみましたが、それは値 "UTC"
任意の提案を返しますか?
私は私がタイムゾーン値「PDT」を抽出したいからモーメントオブジェクトからタイムゾーン値を取得するにはどうすればよいですか?
以下
のような瞬間のオブジェクトを持っています。 私はこの値を瞬間を使って得ることができますか?
私は
moment.tz(this.startDate.toString()).zoneAbbr();
を試してみましたが、それは値 "UTC"
任意の提案を返しますか?
私は恐れるだけです。 これはgetZoneAbbr関数がどのように機能するかを示しています。
function getZoneAbbr() {
return this._isUTC ? 'UTC' : '';
}
これは問題です。 UTCはtimeOffestと一緒に使用して、あなたが横たわっているTimeZoneを特定することができます。 と、オフセット値でタイムゾーン名のリストを作成し、取得したオフセット値を比較する唯一の方法です。 あなたのタイムゾーンを選択することができます。
通常のJavaScript Date機能でさえ、まだサポートされていません。そのオフセットとタイムゾーン名のマップを自分で作成する必要があります。
タイムゾーンオフセットはシステム設定に完全に依存しますが、Dateオブジェクトにはオフセットがありません。オフセットは同じで名前は異なるタイムゾーンが多数あります。タイムゾーンの名前を付ける標準も、略語もありません。:-( – RobG
あなたは次のように解析し、日付のためにしている特定のタイムゾーンを追加するwan'tかもしれません:
moment.tz(moment.now(), 'America/New_York').zoneAbbr();
"PDT"の代わりに返される "UTC" – Joseph
モーメントは、タイムゾーン名を省略取得するz
/zz
formatパラメータを持っていたが、しかし、ドキュメントとしては言う:
注:として1.6.0、Z/ZZの形式トークンの普通の瞬間オブジェクトから非難されています。 Read more about it here.ただし、モーダルタイムゾーンアドオンで特定のタイムゾーンを使用している場合は、はになります。リンクgithubの問題、moment developersuggestで
瞬間のオブジェクトを作成する際的環境のタイムゾーンを得るための良いチャンスを持っているmoment.tz.guess()
を使用します。ここで
あなたはタイムゾーン名省略取得するために使用することができ、作業のコード例:
var startDate = new Date();
var momObj = moment.tz(startDate, moment.tz.guess());
var zoneAbbr1 = momObj.zoneAbbr();
console.log(zoneAbbr1);
var zoneAbbr2 = momObj.format('z')
console.log(zoneAbbr2);
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data-2010-2020.min.js"></script>
あなたはブラウザのビルトイン*日付の結果として「PDT」を見ています。 prototype.toString *メソッドは、moment.jsとは何の関係もありません。タイムゾーンはホスト環境の設定に完全に依存し、文字列のフォーマットは完全にブラウザに依存しますが、タイムゾーンがまったくないものもあれば、まったく異なるものもあります。 – RobG