我正在使用moment-timezone,因此我可以將所選時區轉換爲客戶端的時區。使用moment.js(時區)時返回日期和時間格式(「YYYY-MM-DD HH:mm」)格式
我沒能實現它在比這更好的方式:
convertSelectedTimeZoneToClients() {
let timeZoneInfo = {
usersTimeZone: this.$rootScope.mtz.tz.guess(),
utcOffset: this.formData.timeZone.offset,
selectedDateTime: this.toJSONLocal(this.formData.sessionDate) + " " + this.formData.sessionTime
};
let utcTime = this.$rootScope.mtz.utc(timeZoneInfo.selectedDateTime).utcOffset(timeZoneInfo.utcOffset).format("YYYY-MM-DD HH:mm");
let convertedTime = this.$rootScope.mtz.tz(utcTime, timeZoneInfo.usersTimeZone).format("Z");
return convertedTime;
}
所以基本上我使用usersTimeZone: this.$rootScope.mtz.tz.guess()
,猜()函數來找出從瀏覽器的時區。 然後,我使用utcOffset從日期時間選擇器和下拉列表中獲取值,並將它們轉換爲UTC值。 最後,我想將該utc值轉換爲用戶時區值。
我得到的對象是這樣的:
_D轉換後代表正確的值。我曾嘗試在轉換時間變量上添加一堆不同的.format()模板,但我無法以這種格式查看時間:「YYYY-MM-DD HH:mm」。我想它比使用.utcOffset()函數的工作不同。
有人可以幫我嗎?
作爲使用矩的一般規則:以'_'開頭的所有屬性(如'_d')都是[內部使用](http://stackoverflow.com/a/28132227/4131048),不應使用。請注意,您顯示的代碼與屏幕截圖中的代碼不同。最後,我認爲知道'toJSONLocal'返回什麼是有用的('timeZoneInfo.selectedDateTime'的值是多少?) – VincenzoC