设置一个定时器,每秒计算一次。(在这之前清除一次防止重复调用setInterval()函数)
引入的时候需要全局引入js文件,并添加data-pjax,否则切换到别的页面就失效了
1
| <span class="item-count" id="runtimeshow" data-publishdate="2020-09-30T16:00:00.000Z"></span>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
function myGetRuntime(d) { const dateNow = new Date() const datePost = new Date(d) const dateDiff = dateNow.getTime() - datePost.getTime() const minute = 1000 * 60 const hour = minute * 60 const day = hour * 24
let result = {}
const dayCount = Math.floor(dateDiff / day) const hourCount = Math.floor(dateDiff % day / hour) const minuteCount = Math.floor(dateDiff % day % hour / minute) const secondCount = Math.floor(dateDiff % day % hour % minute / 1000)
result.day = dayCount result.hour = hourCount result.minute = minuteCount result.second = secondCount
return result }
var mTimer
(function () { const $runtimeCount = document.getElementById('runtimeshow') if ($runtimeCount) { const publishDate = $runtimeCount.getAttribute('data-publishDate') clearInterval(mTimer) mTimer = setInterval(function () { const runtimeDate = myGetRuntime(publishDate) $runtimeCount.innerText = '本站已运行 ' + runtimeDate.day + '天' + runtimeDate.hour + '小时' + runtimeDate.minute + '分钟' + (runtimeDate.second < 10 ? ('0' + runtimeDate.second) : runtimeDate.second) + '秒' }, 1000)
} })()
|