[英]Moment.js Convert Local time to UTC time does work
我想使用 Moment.js 將本地時間轉換為 UTC 等效時間。 我相信我有正確的方法,但它不會改變時間。
我在澳大利亞悉尼 +11,希望 UTC 時間早 11 小時。
在 object 時刻內部,isUTC 標志從 false 變為 true,但時間沒有改變,我是否打算為此使用不同的技術。
我如何從這個 object 中實際獲取當前的 UTC 日期
轉換前
var val = '18/03/2015';
var selectedDate = moment(val, 'DD/MM/YYYY');
轉換后
var a = selectedDate.utc()
我剛剛試過這段代碼,似乎我得到了正確的 UTC 時間。 我想我只是想確認我正在做的是從 moment.js 訪問 UTC 時間的正確方法
a.format("YYYY-MM-DD HH:mm:ssZ")
我發現我在我的應用程序中的使用模式不正確
selectedDate.utc().format(fullFormat)
應該是
moment.utc(selectedDate).format(fullFormat)
這有效
moment(date_to_convert).utc().format("YYYY-MM-DD HH:mm:ss");
這個問題很老,但我也遇到過。 它可能對某人有用:
使用utcOffset()的方法計算UTC時間:
selectedDate = (moment(selectedDate).add(-(moment().utcOffset()), 'm'));
並明確指定UTC:
selectedDate = moment.parseZone(selectedDate).utc().format();
這對我有用!!
selectedDate = moment(selectedDate).add(moment(selectedDate).utcOffset(), 'm').utc().format()
從您的本地時間創建一個本地時刻對象並將其轉換為 UTC 然后對其進行格式化,然后從該格式化的 UTC 字符串中創建一個新的 UTC 時刻
var localDateString = '24/04/2019'; var localDateStringFormat = 'DD/MM/YYYY'; var utcMoment = moment.utc(moment(localDateString, localDateStringFormat ).utc().format('YYYY-MM-DD HH:mm:ssZ')) console.log(utcMoment);
<script src="https://momentjs.com/downloads/moment.js"></script>
經過幾個令人沮喪的小時后,我發現了問題所在
簡短回答:要將時間轉換為 UTC,我們需要使用format()
長答案:舉個例子
moment.utc(1559586600000).format('LLL')
.utc 將 isUTC 標志設置為 true。
記錄日期時, d
鍵始終顯示本地時區的時間。 (這讓我們相信它無法正常工作 - 如您的屏幕截圖所示)
但是我們需要使用 .format 來獲取 UTC 格式的日期/時間。
上面的代碼返回June 3, 2019 6:30 PM
,這是正確的 UTC 時間。
這就是您使用moment-timezone
moment.tz(localDate, localTimeZone).utc()
const moment = require('moment-timezone');
const dateTime='2020-12-21'
const timezone='America/Anchorage'
const dateTimeInUtc = moment(dateTime).tz(timezone).utc().format();
console.log('dateTimeInUtc',dateTimeInUtc);
經過幾個令人沮喪的小時后,我發現了問題所在
簡短回答:要將時間轉換為 utc,我們需要使用 format()
長答案:舉個例子
moment.utc(1559586600000).format('LLL')
.utc 將 isUTC 標志設置為 true。
記錄日期時,d 鍵始終顯示本地時區的時間。 (這讓我們相信它無法正常工作 - 如您的屏幕截圖所示)
但是我們需要使用 .format 來獲取 UTC 格式的日期/時間。
上面的代碼返回 2019 年 6 月 3 日下午 6:30,這是正確的 UTC 時間。
const moment = require('moment-timezone'); const dateTime='2020-12-21' const timezone='America/Anchorage' const dateTimeInUtc = moment(dateTime).tz(timezone).utc().format(); console.log('dateTimeInUtc',dateTimeInUtc);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.