51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

为 Hexo 页脚添加实时更新的运行时间

配置文件 {#配置文件}

本文用 Dayjs 来处理日期。当然,完全可以用原生 Date,但我不想把时间浪费在处理日期上面。

我使用的是 butterfly 主题。如果读者正在使用别的主题,请查阅对应官方文档寻找如何插入自定义标签与自定义页脚信息。

在主题配置文件(即_config.butterfly.yml)中引入:

|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | inject: bottom: - <script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.7/dayjs.min.js"></script> - <script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.7/plugin/duration.min.js"></script> - <script src="/scripts/realtime.js"></script> |

在自定义页脚中加入一个 span 元素提供日期的挂载位点(hhh 最近做过 tRNA 结合位点的题,觉得这个描述还挺贴切):

|---------------|-------------------------------------------------------------------| | 1 2 3 | footer: custom_text: <span id="realtime_duration"></span> |

接下来主要通过 setInterval 实现这样一个实时更新的功能。

实现功能 {#实现功能}

source 目录下创建 scripts/realtime.js,写入以下代码:

|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 | (() => { dayjs.extend(window.dayjs_plugin_duration) const el = document.getElementById('realtime_duration') // 改成自己的时间 const date = dayjs('2022-05-19') setInterval(() => { const dur = dayjs.duration(dayjs().diff(date)) const days = String(Math.floor(dur.asDays())) el.innerHTML = '已运行' + days + dur.format('天HH时mm分ss秒') }, 1000) })() |

现在拉到页底就能看到效果。

当然,如果是用 RSS 阅读器或者别的搬运站的话肯定就看不到了。

赞(0)
未经允许不得转载:工具盒子 » 为 Hexo 页脚添加实时更新的运行时间