Countdown.js是一个轻量级的 JavaScript 类库,它提供了简单的 API,用于快速计算两个日期之间的差值,而且可以将结果以多种格式动态显示出来。
1. 安装使用
1.1 下载
Countdown.js官方网站为countdownjs.org,可以在其官网下载插件、查看文档等。或者通过下面链接下载:
- countdown.js-完整版
- countdown.min.js-压缩版
2. API
Countdown.js提供了简单灵活的API。引用countdown.js文件后,就可以一个全局函数countdown()并传入一些静态常量进行设置:
var timespan = countdown(start|callback, end|callback, units, max, digits);
参数:
start|callback-开始时间,详见start/end参数end|callback-结束始时间,详见start/end参数units-设置时间单位常量,可选(默认countdown.DEFAULTS),详见units参数max-设置单位的最大值的显示数量,可选(默认NaN),详见max参数digits-设置最小单位小数允许的小数点,可选(默认0),详见digits参数
返回值:
timespan-对象,详见返回结果Timespan
units时间单位常量有以下值:
countdown.ALL =
countdown.MILLENNIA |
countdown.CENTURIES |
countdown.DECADES |
countdown.YEARS |
countdown.MONTHS |
countdown.WEEKS |
countdown.DAYS |
countdown.HOURS |
countdown.MINUTES |
countdown.SECONDS |
countdown.MILLISECONDS;
countdown.DEFAULTS =
countdown.YEARS |
countdown.MONTHS |
countdown.DAYS |
countdown.HOURS |
countdown.MINUTES |
countdown.SECONDS;
这个方法允许我们仅传一个时间参数,表示自/到那个时间的时差:
countdown( new Date(2000, 0, 1) ).toString();
这将返回一个人类可读的时间描述,类似如下:
11 years, 8 months, 4 days, 10 hours, 12 minutes and 43 seconds
start/end参数
start/end参数可以是以下值之一:
null会使用当前时间- JavaScript
Date对象 number-'UNIX'时间戳- 接收一个
TimeSpan参数的回调函数
当start和end参数同时指定时,countdown(…)总是返回相同的结果。如果只指定一个,而另一个为null,当为过去时间时那么会重复调用计算计数,当为未来时间时将计算剩余的时间。
units参数
units参数支持标准的位运算。如,使用OR操作符提定“月和日”:
countdown.MONTHS | countdown.DAYS
指定“非周或非毫秒”
~(countdown.WEEKS | countdown.MILLISECONDS)
max参数
可选参数code>max用于指定最大单位标签的显示数量。如,指定为2时,则只显示前两级:
countdown(start, end, units, 2).toString() => "5 years and 2 months"
digits参数
可选参数digits用于设置最小单位的小数点位数。如,指定为2位:
countdown(start, end, units, max, 2).toString() => "5 years and 1.65 months"
返回结果Timespan
Timespan是一个包含以下字段的对象:
开始时间-用于计算的开始日期对象结束时间-用于计算的结束日期对象units-指定的单位值value-相差的毫秒数(end-start)
Timespan对象有两个用于格式化输出的方法:
toString(emptyLabel)-格式化输出Timespan对象ts.toString() => "5 years, 1 month, 19 days, 12 hours and 17 minutes"
toHTML(tagName, emptyLabel)-格式化输出Timespan对象,并使用指定的tagName标签包装输出单位。不指定时将使用span标签:ts.toHTML() => "<span>5 years</span>, <span>1 month</span>, <span>19 days</span>, <span>12 hours</span> and <span>17 minutes</span>" ts.toHTML("em") => "<em>5 years</em>, <em>1 month</em>, <em>19 days</em>, <em>12 hours</em> and <em>17 minutes</em>"
