簡體   English   中英

Moment.js 將本地時間轉換為 UTC 時間確實有效

[英]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")

“2015-03-18 04:19:46+00:00”

我發現我在我的應用程序中的使用模式不正確

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM