JavaScript实现网页倒计时与网站运行时间的三种方案

作者:异步漫步

时间:2026-10-29

浏览:598

本文提供三种在网页中实现倒计时和网站运行时间显示的方法。第一种基于jQuery.countdown插件,支持自定义格式与多实例控制;第二种为纯原生JavaScript实现的倒计时脚本,包含逾期处理逻辑;第三种通过Date.UTC计算时间戳差值,展示网站已运行时长。代码涵盖参数说明与格式化处理,适用于各类Web项目的时间展示需求。

文章目录

使用jQuery.countdown插件实现倒计时

第一种方案使用jQuery.countdown插件。该插件支持显示格式为“50周01天07小时18分41秒”,其中秒数会实时跳动(跑秒)。一个页面可创建多个倒计时实例,并支持暂停和开始操作。虽然功能相对基础,但时间格式和输出尺寸均可自定义。当前最新版本为v2.0.2,官方地址为http://hilios.github.io/jQuery.countdown/。具体使用示例如下:

代码如下:

<div id="getting-started"></div>
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="http://hilios.github.io/jQuery.countdown/javascripts/jquery.countdown.min.js"></script>
<script type="text/javascript">
$('#getting-started').countdown('2016/01/01 00:00', function(event) {
$(this).html(event.strftime('%w 周 %d 天 %H:%M:%S'));
  });
</script>

输出结果示例:50周01天07小时18分41秒

注意:若需显示总天数,请使用%D参数。各参数具体说明如下:

代码如下:

Y: "years"
m: "months"
w: "weeks"
d: "days"
D: "totalDays"
H: "hours"
M: "minutes"
S: "seconds"

第二种方案显示格式为:距离结束时间还有:00天05小时25分30秒(秒为跑秒)。

原生JavaScript实现倒计时逻辑

代码如下:

<div id="time" class="time"></div>
<script language=javascript>
function show_date_time(){
window.setTimeout("show_date_time()", 1000);
target=new Date(2014,0,15,17,0,0); //注意:表示月份的参数介于0到11之间。也就是说,如果希望把月设置为8月,则参数应该是7。
today=new Date();
timeold=(target.getTime()-today.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(e_daysold-daysold)*24;
hrsold=Math.floor(e_hrsold);
e_minsold=(e_hrsold-hrsold)*60;
minsold=Math.floor((e_hrsold-hrsold)*60);
seconds=Math.floor((e_minsold-minsold)*60);
if (daysold<0) {
document.getElementById("time").innerHTML="逾期,倒计时已经失效";
}   
else{
if (daysold<10) {daysold="0"+daysold}
if (hrsold<10) {hrsold="0"+hrsold}
if (minsold<10) {minsold="0"+minsold}
if (seconds<10) {seconds="0"+seconds}
if (daysold>0) {
document.getElementById("time").innerHTML="距离结束时间还有:"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
 }   
else
document.getElementById("time").innerHTML="<font color=red>距离结束时间还有:"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒</font>"; //结束时间小于1天,字体呈红色提醒
}   
}   
show_date_time();
</script>

计算并显示网站已运行时间

第三种方案显示格式为:已运行0年1天0小时4分钟35秒(秒为跑秒)。

代码如下:

<span id="sitetime"></span>
<script language=javascript>
function siteTime(){
window.setTimeout("siteTime()", 1000);
var seconds = 1000
var minutes = seconds * 60
var hours = minutes * 60
var days = hours * 24
var years = days * 365
var today = new Date()
var todayYear = today.getFullYear()
var todayMonth = today.getMonth()
var todayDate = today.getDate()
var todayHour = today.getHours()
var todayMinute = today.getMinutes()
var todaySecond = today.getSeconds()
/* Date.UTC() -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳) 
year - 作为date对象的年份,为4位年份值
month - 0-11之间的整数,做为date对象的月份
day - 1-31之间的整数,做为date对象的天数
hours - 0(午夜24点)-23之间的整数,做为date对象的小时数
minutes - 0-59之间的整数,做为date对象的分钟数
seconds - 0-59之间的整数,做为date对象的秒数
microseconds - 0-999之间的整数,做为date对象的毫秒数 */
var t1 = Date.UTC(2014,0,14,11,19,00)
var t2 = Date.UTC(todayYear,todayMonth,todayDate,todayHour,todayMinute,todaySecond)
var diff = t2-t1
var diffYears = Math.floor(diff/years)
var diffDays = Math.floor((diff/days)-diffYears*365)
var diffHours = Math.floor((diff-(diffYears*365+diffDays)*days)/hours)
var diffMinutes = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours)/minutes)
var diffSeconds = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours-diffMinutes*minutes)/seconds)
document.getElementById("sitetime").innerHTML=" 已运行"+diffYears+" 年 "+diffDays+" 天 "+diffHours+" 小时 "+diffMinutes+" 分钟 "+diffSeconds+" 秒"
}
siteTime()
</script>

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章