js 写一个倒计时函数

Date对象

Date.parse(dateString)

返回从1970年1月1日到dateString指定的日期的毫秒数

dateString有如下几点限制(这部分内容是从river.cao的博客看到的)

  • 短日期可使用 / 日期分隔符,但是必须符合 月/日/年 的格式,例如 7/20/96 或 6/15/2008 。

  • 以 July 10 1995 形式表示的长日期中的年、月、日可以按任何顺序排列,而且年份可以用2位数或4位数的形式表示。如果使用2位数的形式来表示年份,则该年份必须大于或等于 70。

  • 逗号 和空格被视为分隔符。允许使用多个分隔符。

  • 月和日的名称必须具有两个或两个以上的字符。如果两个字符所组成的名称不唯一,则该名称将解析为最晚的一个匹配日期。例如, Ju 解析为七月( July ),而不是六月( June )。Chrome不支持”Ju”这种写法。

  • 如果提供一个日期,该日期中所说明的星期数与根据此日期中其他部分所确定的星期数不相符,则此日期中的星期数将被忽略。例如,尽管 1996 年 11 月 9 日实际上是星期五,但 Tuesday November 9 1996 还是可以被接受并进行分析。但是结果的 Date 对象中包含的是 Friday November 9 1996 。

  • 用冒号分隔小时、分钟和秒,但所有这些内容并非都需要指定。 10: 、 10:11 和 10:11:12 都是有效的。

dateObj.getTime()

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

代码

这里我只写了一个思路,还有不严谨之处,仅供参考

  这里我只写了一个思路,还有不严谨之处,仅供参考

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
var countDown=function(date){

var pre=Date.parse(date);

var loop=setInterval(function(){
var d=new Date(),
now=d.getTime(),
diff=pre-now;

var hour=0,
minutes=0,
seconds=0;

diff=Math.round(diff/1000);
seconds=Math.round(diff%60);
minutes=Math.round(diff/60%60);
hour=Math.round(diff/3600);

if(hour==0&&minutes==0&&seconds==0){
clearInterval(loop);
console.log('时间到啦');
}

console.log('还剩 hour '+hour+' minutes '+minutes+' seconds '+seconds);
},1000)
}
//使用方法
//countDown('10/06/2017 22:19:00'); 要写到具体的日期的某个时间点

Copyright © 2018 - 2019 诗之花绪 All Rights Reserved.

UV : | PV :