用JS实现倒计时功能
2012-10-23 10:53
393 查看
//将字符串格式化为时间
function parseDate(str) {
var bb = document.getElementById("bb");
if (typeof str == 'string') {
var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
if (results && results.length > 3)
return new Date(parseInt(results[1], 10), parseInt(results[2], 10) - 1, parseInt(results[3], 10));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
if (results && results.length > 6)
return new Date(parseInt(results[1], 10), (parseInt(results[2], 10) - 1), parseInt(results[3], 10), parseInt(results[4], 10), parseInt(results[5], 10), parseInt(results[6], 10));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
if (results && results.length > 7)
return new Date(parseInt(results[1], 10), parseInt(results[2], 10) - 1, parseInt(results[3], 10), parseInt(results[4], 10), parseInt(results[5], 10), parseInt(results[6], 10), parseInt(results[7], 10));
}
return null;
}
//倒计时 deadline:截止日期,要求格式为:yyyy-MM-dd 或者 yyyy-MM-dd HH:mm:ss或者 yyyy-MM-dd HH:mm:ss.ms
// divname:倒计时要显示的位置
// type:1:显示精确到分;0:显示精确到秒
// msg1、msg2:当倒计时分别不为0、为0时显示的提示信息
function ShowCountDown(deadline, divname, type, msg1, msg2) {
var cc = document.getElementById(divname);
var now = new Date();
var endDate = parseDate(deadline);
if (endDate != null) {
var leftTime = endDate.getTime() - now.getTime();
if (leftTime > 0) {
var leftsecond = parseInt(leftTime / 1000);
var day = Math.floor(leftsecond / (60 * 60 * 24));
var hour = Math.floor((leftsecond - day * 24 * 60 * 60) / 3600);
var minute = Math.floor((leftsecond - day * 24 * 60 * 60 - hour * 3600) / 60);
var second = Math.floor(leftsecond - day * 24 * 60 * 60 - hour * 3600 - minute * 60);
if (cc != null) {
if (type == 1) {cc.innerHTML = msg1 + day + "天" + hour + "小时" + minute + "分";}
else { cc.innerHTML = msg1 + day + "天" + hour + "小时" + minute + "分" + second + "秒"; }
}
}
else {
cc.innerHTML = msg2;
}
}
}
使用例子:
var interval = 1000;
window.setInterval(function() { ShowCountDown('2010-6-11 15:36:00', 'div1', 1,'距停止报名还有 ', '活动已结束'); }, interval);
function parseDate(str) {
var bb = document.getElementById("bb");
if (typeof str == 'string') {
var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
if (results && results.length > 3)
return new Date(parseInt(results[1], 10), parseInt(results[2], 10) - 1, parseInt(results[3], 10));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
if (results && results.length > 6)
return new Date(parseInt(results[1], 10), (parseInt(results[2], 10) - 1), parseInt(results[3], 10), parseInt(results[4], 10), parseInt(results[5], 10), parseInt(results[6], 10));
results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
if (results && results.length > 7)
return new Date(parseInt(results[1], 10), parseInt(results[2], 10) - 1, parseInt(results[3], 10), parseInt(results[4], 10), parseInt(results[5], 10), parseInt(results[6], 10), parseInt(results[7], 10));
}
return null;
}
//倒计时 deadline:截止日期,要求格式为:yyyy-MM-dd 或者 yyyy-MM-dd HH:mm:ss或者 yyyy-MM-dd HH:mm:ss.ms
// divname:倒计时要显示的位置
// type:1:显示精确到分;0:显示精确到秒
// msg1、msg2:当倒计时分别不为0、为0时显示的提示信息
function ShowCountDown(deadline, divname, type, msg1, msg2) {
var cc = document.getElementById(divname);
var now = new Date();
var endDate = parseDate(deadline);
if (endDate != null) {
var leftTime = endDate.getTime() - now.getTime();
if (leftTime > 0) {
var leftsecond = parseInt(leftTime / 1000);
var day = Math.floor(leftsecond / (60 * 60 * 24));
var hour = Math.floor((leftsecond - day * 24 * 60 * 60) / 3600);
var minute = Math.floor((leftsecond - day * 24 * 60 * 60 - hour * 3600) / 60);
var second = Math.floor(leftsecond - day * 24 * 60 * 60 - hour * 3600 - minute * 60);
if (cc != null) {
if (type == 1) {cc.innerHTML = msg1 + day + "天" + hour + "小时" + minute + "分";}
else { cc.innerHTML = msg1 + day + "天" + hour + "小时" + minute + "分" + second + "秒"; }
}
}
else {
cc.innerHTML = msg2;
}
}
}
使用例子:
var interval = 1000;
window.setInterval(function() { ShowCountDown('2010-6-11 15:36:00', 'div1', 1,'距停止报名还有 ', '活动已结束'); }, interval);
相关文章推荐
- 简单的JS实现按钮触发倒计时功能
- js实现倒计时功能
- cocos2d JS 利用定时器实现-倒计时功能
- 原生js实现倒计时功能,创建元素div插入元素,时间结束替换倒计时功能,移除元素
- JS实现根据用户输入分钟进行倒计时功能
- js实现发送短信验证码后的倒计时功能(无视页面刷新)
- 使用JS实现倒计时功能(http://www.cnblogs.com/doll-net)
- Ionic + Angular.js实现验证码倒计时功能的方法
- JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)
- js实现发送短信验证码后的倒计时功能(无视页面刷新)
- 微信小程序+WEB使用JS实现注册【60s】倒计时功能
- 微信小程序+WEB使用JS实现注册【60s】倒计时功能
- js实现倒计时功能
- js实现发送验证码后的倒计时功能
- js实现网页倒计时、网站已运行时间功能的代码3例
- js实现发送验证码后的倒计时功能
- 简单实现js倒计时功能
- js实现网页倒计时、网站已运行时间功能的代码3例
- 基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
- JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)