利用JavaScript添加网站运行时间

文章是之前整理的 原文地址:JavaScript | 为网站添加网站运行时间 (qq.com)

前言

相信大家平时在浏览网页时都看到过在某网页底部信息栏中,存在一行动态计时记录网站运行时间的信息,类似这样的:

这可以利用JavaScript实现。需要有一定的JavaScript基础。下面我就基于之前搭建的个人博客网站来一步步教大家如何给自己的网站添加这一内容信息,重点强调如何利用JavaScript来实现这一功能。

准备

  • 3.个人博客使用butterfly主题

JavaScript代码实现

首先利用JavaScript代码实现这一功能。 代码解释右滑见每句代码后的注释!

 function show_date_time() {  //创建函数-show_date_time()
     window.setTimeout("show_date_time()", 1000); //设置每隔1000毫秒(也就是1秒)执行一次函数show_date_time()
     BirthDay = new Date("01/21/2021 17:00:00"); //利用New新建一个固定Date对象,网站创建运行起始日期,修改这个日期即可
     today = new Date(); //利用New新建一个当前日期时间的Date对象
     timeold = (today.getTime() - BirthDay.getTime()); //计算时间间隔,取当前日期对象的毫秒数与固定日期对象的毫秒数差值。差值标记为过去的时间即网站运行的时间
     //利用时间间隔(毫秒)分别求出天数、小时、分钟、秒
     sectimeold = timeold / 1000; //转换毫秒单位为秒
     secondsold = Math.floor(sectimeold); //利用Math对象的floor方法取出以秒为单位的整数时间间隔
     msPerYear = 365 * 24 * 60 * 60 * 1000;  //计算出每年所需的毫秒数 
     e_yearsold = timeold / msPerYear;  //利用以毫秒为单位的时间间隔计算出运行的年数,结果为带有小数的值
     yearsold = Math.floor(e_yearsold); //利用Math对象的floor方法将运行的年数化为整数 
     e_daysold = (e_yearsold - yearsold) * 365; //计算出带有小数的运行天数
     daysold = Math.floor(e_daysold); //利用Math对象的floor方法将运行的天数化为整数
     e_hrsold = (e_daysold - daysold) * 24; //计算出带有小数的运行小时数
     hrsold = Math.floor(e_hrsold); //利用Math对象的floor方法将运行的小时数化为整数
     e_minsold = (e_hrsold - hrsold) * 60; //计算出带有小数的运行分钟数
     minsold = Math.floor((e_hrsold - hrsold) * 60); //利用Math对象的floor方法将运行的分钟数化为整数
     seconds = Math.floor((e_minsold - minsold) * 60); //计算出运行的秒数
     if (yearsold == 0) {  //判断运行时间是否大于一年
         showtime.innerHTML = "小站勉强运行了:" + daysold + "天" + hrsold + "小时" + minsold + "分" + seconds + "秒"; // 运行时间小于一年不显示运行年数
     } else {
         showtime.innerHTML = "小站勉强运行了:" + yearsold + "年" + daysold + "天" + hrsold + "小时" + minsold + "分" + seconds + "秒";
     }
 
 }
 show_date_time(); //调用show_date_time()

部分对象方法的使用介绍

1.Window对象的setTimeout() 方法

定义

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

提示: 1000 毫秒= 1 秒。

语法

 setTimeout(code, milliseconds, param1, param2, ...)
 setTimeout(function, milliseconds, param1, param2, ...)

参数介绍

姓名 年龄
code/function 必需。要调用一个代码串,也可以是一个函数。
milliseconds 可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。
param1, param2, ... 可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。
返回值

返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。

在这里是设置每隔1000毫秒(也就是1秒)执行一次函数show_date_time()

2.Date对象的getTime() 方法

Date 对象用于处理日期与时间。

利用New创建 Date 对象: new Date()

定义

getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。

语法

 Date.getTime()

返回值

指定的日期和时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数。

在这里计算时间间隔,取当前日期对象的毫秒数与固定日期对象的毫秒数差值。差值标记为过去的时间即网站运行的时间

Math 对象的Floor方法

Math 对象用于执行数学任务。

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。

定义

floor() 方法返回小于等于x的最大整数。如果传递的参数是一个整数,该值不变。 语法

 Math.floor(x)

参数值

参数 描述
X 必需。任意数值或表达式。
返回值

小于等于 x,且与 x 最接近的整数。

在这里利用Math对象的floor方法将计算出的时间间隔向下取整


因为下面是基于为我的个人博客添加这一内容开展的,如果之前按照教程也搭建了自己的博客,并且主题为butterfly的,想为自己的博客添加的这一功能,可以按照本教程步骤继续做。

利用JavaScript为页面添加标签元素

记录网站运行时间的JavaScript代码写完之后,需要在在页面具体位置显示,但是因为我们用的是直接的主题,并不是我们自己写的HTML,于是就需要再次利用JavaScript去为页面的具体位置添加一个标签用来显示这一内容。

JavaScript代码实现:

代码解释右滑见每句代码后的注释!

 var obj = document.createElement("span"); //定义创建span标签
 obj.innerHTML = "<span id=\"showtime\"></span>";//利用innerHTML 属性设置 HTML的内容。
 document.querySelector(".footer_custom_text").appendChild(obj); //将obj内容通过appendChild方法添加到页面中的类名为.footer_custom_text的标签内

注意

将obj内容通过appendChild方法添加到页面中的类名为.footer_custom_text的标签内,也就是网站首页的底部标签栏内。

最后将完整的JS代码文件保存到自己计算机搭建博客的文件夹下文章最后附有完整JS代码

添加到主题设置文件

在自己计算机中找到搭建博客的文件夹,找到themes\butterfly\source\js文件夹下的_config.yml主题设置文件

找到以下内容:

 footer:
   owner:
     enable: true
     since: 2020
      custom_text: </script><br><script src="/js/tj.js"></script>
      copyright: true # Copyright of theme and framework

大约在代码385行左右

custom_text:后添加一行引入刚才保存的JS文件即可

 <script src="/js/tj.js"></script>

完整JS代码

 var obj = document.createElement("span");
 obj.innerHTML = "<span id=\"showtime\"></span>";
 document.querySelector(".footer_custom_text").appendChild(obj);
 
 function show_date_time() { //创建函数-show_date_time()
     window.setTimeout("show_date_time()", 1000); //设置每隔1000毫秒(也就是1秒)执行一次函数show_date_time()
     BirthDay = new Date("01/21/2021 17:00:00"); //利用New新建一个固定Date对象,网站创建运行起始日期,修改这个日期即可
     today = new Date(); //利用New新建一个当前日期时间的Date对象
     timeold = (today.getTime() - BirthDay.getTime()); //计算时间间隔,取当前日期对象的毫秒数与固定日期对象的毫秒数差值。差值标记为过去的时间即网站运行的时间
     //利用时间间隔(毫秒)分别求出天数、小时、分钟、秒
     sectimeold = timeold / 1000; //转换毫秒单位为秒
     secondsold = Math.floor(sectimeold); //利用Math对象的floor方法取出以秒为单位的整数时间间隔
     msPerYear = 365 * 24 * 60 * 60 * 1000; //计算出每年所需的毫秒数 
     e_yearsold = timeold / msPerYear; //利用以毫秒为单位的时间间隔计算出运行的年数,结果为带有小数的值
     yearsold = Math.floor(e_yearsold); //利用Math对象的floor方法将运行的年数化为整数 
     e_daysold = (e_yearsold - yearsold) * 365; //计算出带有小数的运行天数
     daysold = Math.floor(e_daysold); //利用Math对象的floor方法将运行的天数化为整数
     e_hrsold = (e_daysold - daysold) * 24; //计算出带有小数的运行小时数
     hrsold = Math.floor(e_hrsold); //利用Math对象的floor方法将运行的小时数化为整数
     e_minsold = (e_hrsold - hrsold) * 60; //计算出带有小数的运行分钟数
     minsold = Math.floor((e_hrsold - hrsold) * 60); //利用Math对象的floor方法将运行的分钟数化为整数
     seconds = Math.floor((e_minsold - minsold) * 60); //计算出运行的秒数
     if (yearsold == 0) { //判断运行时间是否大于一年
         showtime.innerHTML = "小站勉强运行了:" + daysold + "天" + hrsold + "小时" + minsold + "分" + seconds + "秒"; // 运行时间小于一年不显示运行年数
     } else {
         showtime.innerHTML = "小站勉强运行了:" + yearsold + "年" + daysold + "天" + hrsold + "小时" + minsold + "分" + seconds + "秒";
     }
 
 }
 show_date_time(); //调用show_date_time()

推荐关注

 

编程那点事儿

本站为非盈利性站点,所有资源、文章等仅供学习参考,并不贩卖软件且不存在任何商业目的及用途,如果您访问和下载某文件,表示您同意只将此文件用于参考、学习而非其他用途。
本站所发布的一切软件资源、文章内容、页面内容可能整理来自于互联网,在此郑重声明本站仅限用于学习和研究目的;并告知用户不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
如果本站相关内容有侵犯到您的合法权益,请仔细阅读本站公布的投诉指引页相关内容联系我,依法依规进行处理!
作者:理想
链接:https://www.imyjs.cn/archives/848
THE END
二维码
利用JavaScript添加网站运行时间
文章是之前整理的 原文地址:JavaScript | 为网站……
<<上一篇
下一篇>>
文章目录
关闭
目 录