背景
從因為一個小需求,我浪費了將近兩個小時去百度,但是卻沒有找到想要的結果,不知道是因為我搜索的能力下降了還是搜索引擎不好使了,我還去專門看了dayjs,moment的檔案,想著后面可能用到的地方還挺多直接用api也挺方便,可惜找來找去也沒有自己想要的答案,索性自己寫一個吧,其實需求也很簡單(就是自己懶),就是展示兩個時間的時間差,也就是時長展示,效果大概就是(1天5時3分20秒),不足某個單位則省略,
準備
不需要準備啥,主要就是需求搞清楚就行了,先計算兩個時間的時間差,然后從天除到秒,因為我這個主要是展示腳本執行時間,所以就只做到天,當然要做到年月也是可以的,
代碼
function timeDuration(start, end) {
// 這里可以判斷一下start,end是否能轉換成時間,因為懶所以沒做~
const diffSeconds = new Date(end).getTime() / 1000 - new Date(start).getTime() / 1000;
if (!diffSeconds || diffSeconds < 0) return '0秒';
let leftSeconds, resultStr = '';
resultStr += diffSeconds / 86400 > 1 ? Math.floor(diffSeconds / 86400) + '天' : '';
leftSeconds = diffSeconds % 86400;
resultStr += leftSeconds / 3600 > 1 ? Math.floor(leftSeconds / 3600) + '時' : '';
leftSeconds = diffSeconds % 3600;
resultStr += leftSeconds / 60 > 1 ? Math.floor(leftSeconds / 60) + '分' : '';
leftSeconds = diffSeconds % 60;
resultStr += leftSeconds + '秒';
return resultStr;
}
總結
其實呢,這段代碼真的很簡單,起初就是因為懶,所以總結一下主要就是遇到問題的時候先思考一下時間成本,不要因為問題簡單就以為網上可以很容易找到,其實網上是有的(以前有印象),但是現在找不到了,所以我就花了很多時間去找,本以為很容易找到,可以省寫的時間,結果浪費了那么久,唉,所以這也算是一種教訓啊,時間成本很貴的,尤其是忙的飛起的時候!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432016.html
標籤:JavaScript
上一篇:聊聊動效降級
下一篇:Vue組件間的資料通信
