亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

用dayjs解析時間戳,我被提了bug

admin
2025年6月8日 22:24 本文熱度 419

引言

前幾天開發(fā)中突然接到測試提的一個 Bug,說我的時間組件顯示異常。

我很詫異,這里初始化數(shù)據(jù)是后端返回的,我什么也沒改,這 bug 提給我干啥。我去問后端:“這數(shù)據(jù)是不是有問題?”。后端答:“沒問題啊,我們一直都是這么返回的時間戳,其他人用也沒報錯?!?/span>

于是,對比生產(chǎn)環(huán)境數(shù)據(jù),我終于找到了問題根源:「后端時間戳的類型,從 Number 靜悄悄地變成了 String?!?/strong>

Bug 原因

問題的原因,肯定就出現(xiàn)在時間數(shù)據(jù)解析上了,代碼中,我統(tǒng)一用的 dayjs 做的時間解析。

如圖,對時間戳的解析我都是這么寫的

const time = dayjs(res.endTime).format('YYYY-MM-DD HH:mm:ss')

于是,我分別試了兩種數(shù)據(jù)類型的解析方式:

  • 字符型
dayjs('175008959900').format('YYYY-MM-DD hh:mm:ss') // 1975-07-19 01:35:59
  • 數(shù)值型
dayjs(Number('175008959900')).format('YYYY-MM-DD HH:mm:ss') // 2025-07-17 06:59:59

看來,問題原因顯而易見了:

由于后端返回的是「字符串類型」?的?'175008959900'dayjs()?在處理字符串時,會嘗試按 “常見的日期字符串格式” 進行解析(如?YYYY-MM-DDYYYYMMDD?等),「并不會自動識別為時間戳」。所以它「不會把這個字符串當(dāng)作毫秒時間戳來解析」,而是直接失敗(解析成無效日期),但 dayjs 會退化為 Unix epoch(1970 年)或給出錯誤結(jié)果,最終導(dǎo)致返回的是錯誤的時間。

如何避免此類問題

同 dayjs 一樣,原生的?new Date()?在解析時間戳?xí)r也存在類似的問題,因此,不管是?Date?還是?dayjs,一律對后端返回的時間戳?Number(input)?兜底處理,永遠不要信任它傳的是數(shù)字還是字符串:

const ts = Number(res.endTime);
const date = new Date(ts);

思考

其實出現(xiàn)這個問題,除了后端更改時間戳類型,也在于我沒有充分理解 “時間戳” 的含義。我一直以為時間戳就是一段字符或一段數(shù)字,因此,從來沒有想過做任何兜底處理。那么,什么是時間戳?

「時間戳(Timestamp)」?是一種用來表示時間的數(shù)字,通常表示從某個 “起點時刻” 到某個指定時間之間「所經(jīng)過的時間長度」。這個 “起點” 大多數(shù)情況下是?「1970 年 1 月 1 日 00:00:00 UTC(Unix 紀元)」?。

「常見時間戳類型:」

類型
單位
示例值
說明
Unix 時間戳(秒)
1750089599
常見于后端接口、數(shù)據(jù)庫存儲
毫秒時間戳
毫秒
1750089599000
JavaScript 常用,Date.now()

「時間戳的意義:」

  • 它是一個?「絕對時間的數(shù)字化表示」,可以跨語言、跨平臺統(tǒng)一理解;
  • 更容易做計算:兩個時間戳相減就能得到毫秒差值(時間間隔);
  • 更緊湊:比如比字符串?"2025-07-17 06:59:59"?更短,處理性能更高。

「在 JavaScript 中的使用:」

console.log(Date.now()); // 比如:1714729530000

// 將時間戳轉(zhuǎn)為日期
console.log(new Date(1750089599000)); // Thu Jul 17 2025 06:59:59 GMT+0800


關(guān)注更多AI編程資訊請去AI Coding專區(qū):https://juejin.cn/aicoding

閱讀原文:原文鏈接


該文章在 2025/6/9 9:58:32 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved