亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Javascript 中格式化時間戳以顯示相關時區的正確時間

如何在 Javascript 中格式化時間戳以顯示相關時區的正確時間

一只甜甜圈 2023-05-18 09:57:21
我在 JavaScript 中處理時間有問題。我在 firebase 的文檔中有一個時間戳,我有一個應該發送通知的云函數。我想發送帶有正確格式的時間戳的通知作為英國當前時區(當前為 BST 或 UTC+1 或 GMT+1)。下面是我的代碼......exports.sendNotificationNewRota = functions.firestore  .document('rota/{attendanceId}')  .onCreate(async snapshot => {    const transaction = snapshot.data();    var dateIn = transaction.timeIn.toDate();    let timeIn = dateIn.toLocaleTimeString( {      timezone: 'Europe/London',      timeZoneName: 'long',      hour: '2-digit',      minute:'2-digit'});    console.log(timeIn);此代碼的輸出為我提供了 UTC 時間。當 BST 完成時這可能沒問題,但不是現在。有沒有辦法正確處理時間?
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

天哪,我在這上面浪費了太多時間,但最終我意識到這是我代碼中的錯字。任何有同樣問題的人一定要使用timeZone而不是timezone



查看完整回答
反對 回復 2023-05-18
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

注意函數簽名Date.prototype.toLocaleTimeString()


dateObj.toLocaleTimeString([locales[, options]])

詳情在這里


您有效地將配置傳遞給locales參數,為了使代碼正常工作,您需要添加一個空的第一個參數?;蛘?,您也可以指定它,'en-UK'例如:


exports.sendNotificationNewRota = functions.firestore

  .document('rota/{attendanceId}')

  .onCreate(async snapshot => {

    const transaction = snapshot.data();


    var dateIn = transaction.timeIn.toDate();


    let timeIn = dateIn.toLocaleTimeString([],{ //<-- fix here

      timezone: 'Europe/London',

      timeZoneName: 'long',

      hour: '2-digit',

      minute:'2-digit'});


    console.log(timeIn);


查看完整回答
反對 回復 2023-05-18
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號