將 UTC 紀元轉換為本地日期物件可能是一項棘手的任務。預設情況下,JavaScript 的 new Date() 假定紀元時間是本機時間,導致處理 UTC 紀元時出現混亂。
解決方案1:使用setUTCSeconds() 方法
不要使用setTime() 調整UTC 物件(這並不總是能產生準確的結果),而是考慮將初始日期設為紀元並添加UTC 單位。
var utcSeconds = 1234567890; var d = new Date(0); // Sets the date to the epoch d.setUTCSeconds(utcSeconds);
這個方法直接將日期設定為 UTC 紀元,並將其調整為所需的 UTC 秒。
如果上述解決方案不起作用,您可以嘗試計算本地當前紀元與 UTC 當前紀元之間的時間差。以下是您提供的程式碼的修改版本:
var utcSeconds = 1234567890; var utcDate = new Date(utcSeconds * 1000); // Convert seconds to milliseconds var localDate = new Date(); var timeDifference = localDate.getTime() - utcDate.getTime(); console.log(timeDifference); // This should give you the time difference in milliseconds
確保在建立 utcDate 物件之前將 UTC 秒轉換為毫秒。然後,timeDifference 將提供本地時間和 UTC 時間之間的毫秒差異,以便進行精確調整。
以上是如何在 JavaScript 中將 UTC 紀元轉換為本地日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!