一只甜甜圈
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 回答

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);
添加回答
舉報
0/150
提交
取消