2017-09-01 6 views
0

私たちはJSON日付をMoment Timezone JSに渡しています。 私たちはtime.tz()呼び出しでタイムゾーンを設定し、ローカルタイムゾーンがユーザーのものであるかどうかにかかわらず、すべてのユーザーに表示される時間を指定します。 私たちの問題は、デフォルトのJavascriptの時刻形式に戻したいのですが、moment.tz()で指定したタイムゾーンをKEEPに戻したいということです。私は新しいDate()の中にmoment.tz()をラップして、.toDate()を追加しようとしましたが、ユーザーのコンピュータから現地の日付を出力するだけです(私のマシンのタイムゾーンをテストするために私自身のもの以外に設定しました)。私がそれをしたいのは、私がモーメントで指定した時間として指定した特定のタイムゾーンの日付/時刻を私に与えることです。Moment Timezone JS、Javascript日付に戻る

私の出力の例。

//1504897200000 = 1:00 pm on Friday September 8, 2017 
    var eventTimeDate = moment.tz(1504897200000, "America/Denver").format('h:mm A'); 

今、私は私のJSONの日付を取るとバックする必要がありますデフォルトのJavaScript形式に変換したい:

Fri Sep 08 2017 13:00:00 GMT-0600 (Mountain Daylight Time) 

しかし、私は自分のローカルコンピュータ上の自分のタイムゾーンを変更した場合のように、それが現れますNOT私はmoment.tzを使用してモーメントの時間を変換しようとしてダブリンに自分のタイムゾーンを設定している場合、私は

のでMoment.jsに設定されたタイムゾーンを設定する私のコンピュータのタイムゾーン()メソッド

 var eventTimeDateValue = moment.tz(1504897200000, "America/Denver").toDate(); 

それは出力:私はモーメントJSを持っている設定「アメリカ/デンバー」と一致していません

Fri Sep 08 2017 20:00:00 GMT+0100 (GMT Daylight Time) 

を。

長いフォーマットに変換する方法はありますが、Moment JSで設定したタイムゾーンを維持する方法はありますか?あなたがtoDate()を使用している場合

https://jsfiddle.net/549La2ct/

+1

文字列をフォーマットするには、.t oString()?ここのようにhttps://jsfiddle.net/4wby7f07/ JavaScriptのDateオブジェクトを解析する必要がありますか? – DevDig

答えて

2

が、それはJavaScriptのDateオブジェクトを作成します、そしてそれはあなたが望むように出力を制御する方法を提供していません:

は、ここに私のJSFiddleです。

:変数 strが値を持つことになります

var abbrs = { 
    EST : 'Eastern Standard Time', 
    EDT : 'Eastern Daylight Time', 
    CST : 'Central Standard Time', 
    CDT : 'Central Daylight Time', 
    MST : 'Mountain Standard Time', 
    MDT : 'Mountain Daylight Time', 
    PST : 'Pacific Standard Time', 
    PDT : 'Pacific Daylight Time', 
}; 

moment.fn.zoneName = function() { 
    var abbr = this.zoneAbbr(); 
    return abbrs[abbr] || abbr; 
}; 

var str = moment.tz(1504897200000, "America/Denver").format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ (zz)'); 

:あなたが希望の形式で文字列を使用する場合は

、あなたはタイムゾーン長い名前を取得するにはaddition suggested in the docsで、format()メソッドを使用することができます

金9月8日2017 13:00:00 GMT-0600(山岳夏時間)

+1

これは私が進んでいたルートであった。 GMTとzoneNameの最後の部分を知りたいだけでした。私はこれを使用していただきありがとうございます。とても有難い。 – ClosDesign