JavaScript >> Javascript 文檔 >  >> JavaScript

另一個位置/時區的當前時間 [JavaScript]

本文將演示如何在Javascript中獲取另一個位置/時區的當前時間,只需一行代碼。

最簡單的純 JavaScript 方式

下面的函數將給定的日期轉換為不同的時區,並且只包含 1 行代碼。

function timezoneConvert(date, tzString) {
    return new Date((typeof date === "string" ? new Date(date) : date).toLocaleString("en-US", {timeZone: tzString}));   
}

這個函數需要:

  • 日期,可以是 Date 對像或字符串
  • 包含要轉換到的時區名稱的字符串

此函數的工作原理是從傳入的 Date 對像在所需的時區創建一個新的 Date 對象,並在必要時從字符串轉換傳入的日期。

要使用它來獲取另一個位置的當前時間,您只需傳遞一個新的 Date 對象,默認為當前時間:

var currentTime = new Date();
var currentTimeInAdelaide = timezoneConvert(currentTime, "Australia/Adelaide") 
console.log(currentTimeInAdelaide.toLocaleString());

要轉換特定的日期/時間,可以傳遞一個字符串:

var convertedDate = timezoneConvert("2022/04/25 09:30:00 +0000", "Australia/Adelaide") 
console.log(convertedDate.toLocaleString());

JavaScript 日期對象

上面的代碼使用了 JavaScript Date 對象——可以分配給變量來表示日期的特殊對象。日期對象包括某一時刻的具體細節,包括:

  • 日期
  • 時間
  • 時區

Date 對像還包括用於檢索特定時刻的 UTC 時間的方法,以及用於檢索時區偏移的方法。這使得 Date 對象成為處理日期和時間的通用方式。

使用 Moment.js

不過,還有一種更簡單的方法。 Moment.js 是一個 JavaScript 庫,它使處理日期、時間和時區以及時間間隔變得異常容易。

在 Moment.js 中轉換時區就像使用 Moment Timezone 模塊一樣簡單:

var timeInNewYork = moment.tz("2033-05-01 12:30", "America/New_York");

將所有內容存儲為 UTC!

如果您將日期和時間存儲在數據庫或文件中以供以後檢索,則值得將所有內容存儲為 UTC,然後在顯示信息時轉換為用戶時區。這消除了歧義或混淆的任何可能性,並且意味著無論用戶位於何處,您的應用程序都是準確的。這對於 Web 應用程序尤其重要,因為您可能讓人們從世界各地登錄並相互交互。


Tutorial JavaScript 教程
  1. @react-google-maps/api 想法(pt.2)

  2. 用於在 IE 中進行調試的兩個小書籤

  3. #30DaysOfAppwrite :用於生產的 Appwrite

  4. create-react-app 創建的應用中包含的 serviceWorker.js 是什麼? unregister() 是做什麼的?

  5. 如何使用 Node-RED 接收 SMS 消息

  6. 這是您的 GitHub 個人資料自述文件的一些很棒的東西。

  7. 在 React 中使用 Axios POST 時出現 400 BAD REQUEST

  1. 如何根據jsp中的條件禁用按鈕?

  2. 反應本機與。 Ionic:最好的跨平台框架是什麼?

  3. 使用 multer 將圖像上傳到 API

  4. JavaScipt Hack:9 個非常強大的 JavaScript 黑客

  5. AWS Amplify 管理用戶界面

  6. TypeScript 中 ES3/ES5 的下層迭代

  7. 我們什麼時候應該在我們的代碼中使用 Let 和 const 🤔。

  1. 使用一點 CSS 為您的網站創建內聯幫助提示

  2. 我創建了一個在線 Markdown 查看器和編輯器📝

  3. 簡單的節點調試日誌

  4. 通過 API 對用戶進行 Angular 身份驗證