簡體   English   中英

無法理解 Javascript 中日期時間的混亂行為

[英]Can't understand the confusing behavior of Date time in Javascript

 var localTime = new Date().toLocaleString("en-US", { timeZone: 'Asia/Dhaka' }); var timeStamp = Number(new Date(localTime)); console.log(new Date(timeStamp))

當我的計算機時間是本地時間時,它會打印 UTC 時間,但是當我將計算機時間設置為 UTC 時間時,它會打印本地時間? 它不應該總是打印我的當地時間嗎?

例如,當我的計算機時間為 19:46:46 時,它會打印 2020-05-19T13:46:46.000Z(我的時區是 UTC+6)。 當我將計算機的時間更改為 13:46:46 時,它會打印 2020-05-19T19:46:46.000Z。

是我電腦時間的截圖。

這並不令人困惑。 始終是運行它的機器的本地時間。 toLocaleString()不會在時區之間轉換。 第二個參數更改日期在該區域中的表示方式(語言、格式)。 日期和時間相同。

一個好的解決方案可能是始終使用 UTC 並在需要將其顯示為本地時間時從那里進行轉換。 這樣你就可以控制當地時間。

Date.UTC()將讓您創建一個 UTC 日期,或者您可以使用方法date.getUTCxxx()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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