js实现倒计时 需要精确到秒 在datetime中的时分秒不加能正常显示 100
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title></head...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<time datetime="2014-11-28"></time><br>
<time datetime="2014-11-28 00:00:00"></time><br>
<time datetime="2014-11-28,00,00,00"></time><br>
<time datetime="2014-11-28,11:00:00"></time><br>
</body>
</html>
<script>
var time=document.getElementsByTagName('time');
now=new Date();
alert(now);
function addtime (y) {
setInterval(
function (){
var s0=1000,m0=s0*60,h0=m0*60,d0=h0*24,now=new Date(),t;
t=Date.parse(y.getAttribute('datetime'))-Date.UTC((now.getYear()+1900),(now.getMonth()),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds());
if(t<0){y.innerHTML= '已经开始了'}else{
var d=Math.floor(t/d0), h=Math.floor((t-d*d0)/h0), m=Math.floor((t-d*d0-h*h0)/m0), s=Math.floor((t-d*d0-h*h0-m*m0)/s0);
y.innerHTML= '还剩'+('0'+d).substr(-2)+'天'+('0'+h).substr(-2)+'时'+('0'+m).substr(-2)+'分'+('0'+s).substr(-2)+'秒';}
},1000);
}
for (var i = 0; i < time.length; i++) {
addtime(time[i])
}
</script>
要求更改代码使datetime中的时间精确到秒,能正常显示。 展开
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<time datetime="2014-11-28"></time><br>
<time datetime="2014-11-28 00:00:00"></time><br>
<time datetime="2014-11-28,00,00,00"></time><br>
<time datetime="2014-11-28,11:00:00"></time><br>
</body>
</html>
<script>
var time=document.getElementsByTagName('time');
now=new Date();
alert(now);
function addtime (y) {
setInterval(
function (){
var s0=1000,m0=s0*60,h0=m0*60,d0=h0*24,now=new Date(),t;
t=Date.parse(y.getAttribute('datetime'))-Date.UTC((now.getYear()+1900),(now.getMonth()),now.getDate(),now.getHours(),now.getMinutes(),now.getSeconds());
if(t<0){y.innerHTML= '已经开始了'}else{
var d=Math.floor(t/d0), h=Math.floor((t-d*d0)/h0), m=Math.floor((t-d*d0-h*h0)/m0), s=Math.floor((t-d*d0-h*h0-m*m0)/s0);
y.innerHTML= '还剩'+('0'+d).substr(-2)+'天'+('0'+h).substr(-2)+'时'+('0'+m).substr(-2)+'分'+('0'+s).substr(-2)+'秒';}
},1000);
}
for (var i = 0; i < time.length; i++) {
addtime(time[i])
}
</script>
要求更改代码使datetime中的时间精确到秒,能正常显示。 展开
6个回答
展开全部
其实加一个判断就行了,这是因为时区差的原因。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<time datetime="2014-11-28"></time><br>
<time datetime="2014-11-28 00:00:00"></time><br>
<time datetime="2014-11-28,00,00,00"></time><br>
<time datetime="2014-11-28,11:00:00"></time><br>
</body>
</html>
<script>
var time=document.getElementsByTagName('time');
now=new Date();
//alert(now);
function addtime (y) {
setInterval(
function (){
var s0=1000,m0=s0*60,h0=m0*60,d0=h0*24,now=new Date(),t,dt=y.getAttribute('datetime');
t=Date.parse(dt)-now+(/:/.test(dt)?0:now.getTimezoneOffset()*60000);
if(t<0){y.innerHTML= '已经开始了'}else{
var d=Math.floor(t/d0), h=Math.floor((t-d*d0)/h0), m=Math.floor((t-d*d0-h*h0)/m0), s=Math.floor((t-d*d0-h*h0-m*m0)/s0);
y.innerHTML= '还剩'+('0'+d).substr(-2)+'天'+('0'+h).substr(-2)+'时'+('0'+m).substr(-2)+'分'+('0'+s).substr(-2)+'秒';}
},1000);
}
for (var i = 0; i < time.length; i++) {
addtime(time[i])
}
</script>
追问
火狐上第二个 第四个还是无法显示 主要为了在火狐显示的
展开全部
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>倒计时测试</title>
</head>
<body>
<SCRIPT type="text/javascript">
<!--
var target=[]
var time_id=[]
function show(){
setTimeout("show()", 1000);
for (var i=0,j=target.length;i<j;i++){ //可以扩展为多个倒计时应用
today=new Date();
timeold=target[i]-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_minsold); //取整数(分)
e_secoold=(e_minsold-minsold)*60;//取不足一小时的时间转换为秒
seconds=Math.floor(e_secoold); //取整数(秒)
if (daysold<0) {
document.getElementByIdx_x_x(time_id[i]).innerHTML="<font color=red>正在抽奖中……</font>";
}else{
if (daysold<10) {daysold="0"+daysold}
//if (daysold<100) {daysold="0"+daysold}
if (hrsold<10) {hrsold="0"+hrsold}
if (minsold<10) {minsold="0"+minsold}
if (seconds<10) {seconds="0"+seconds}
if (daysold<3) {
document.getElementByIdx_x_x(time_id[i]).innerHTML="<font color=red>"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒</font>";
}
else {
document.getElementByIdx_x_x(time_id[i]).innerHTML=daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
}
}
}
}
setTimeout("show()", 1);
//-->
</SCRIPT>
距抽奖还有:
<div id="ti" style="border:1px solid black;margin:5px;padding:2px;width:180px"></div>
<SCRIPT>
//设定目标时间(数组元素)
//target[target.length]=new Date(年,月-1,日,时,分,秒).getTime()
target[target.length]=new Date(2010,8,21,12,00,00).getTime();
//设定倒计时显示地址(数组元素)
time_id[time_id.length]="ti"
</SCRIPT>
</body>
</html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>倒计时测试</title>
</head>
<body>
<SCRIPT type="text/javascript">
<!--
var target=[]
var time_id=[]
function show(){
setTimeout("show()", 1000);
for (var i=0,j=target.length;i<j;i++){ //可以扩展为多个倒计时应用
today=new Date();
timeold=target[i]-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_minsold); //取整数(分)
e_secoold=(e_minsold-minsold)*60;//取不足一小时的时间转换为秒
seconds=Math.floor(e_secoold); //取整数(秒)
if (daysold<0) {
document.getElementByIdx_x_x(time_id[i]).innerHTML="<font color=red>正在抽奖中……</font>";
}else{
if (daysold<10) {daysold="0"+daysold}
//if (daysold<100) {daysold="0"+daysold}
if (hrsold<10) {hrsold="0"+hrsold}
if (minsold<10) {minsold="0"+minsold}
if (seconds<10) {seconds="0"+seconds}
if (daysold<3) {
document.getElementByIdx_x_x(time_id[i]).innerHTML="<font color=red>"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒</font>";
}
else {
document.getElementByIdx_x_x(time_id[i]).innerHTML=daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
}
}
}
}
setTimeout("show()", 1);
//-->
</SCRIPT>
距抽奖还有:
<div id="ti" style="border:1px solid black;margin:5px;padding:2px;width:180px"></div>
<SCRIPT>
//设定目标时间(数组元素)
//target[target.length]=new Date(年,月-1,日,时,分,秒).getTime()
target[target.length]=new Date(2010,8,21,12,00,00).getTime();
//设定倒计时显示地址(数组元素)
time_id[time_id.length]="ti"
</SCRIPT>
</body>
</html>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>倒计时</title>
<style type= "text/css">
.daojishi h2{
font-family:Helvetica, Microsoft YaHei, Arial, sans-serif;
font-size:14px;
margin-bottom:5px;
color:#151515;
}
.daojishi #timer{
font-family:Helvetica, Microsoft YaHei, Arial, sans-serif;
font-size:14px;
color:#151515;
font-weight:bold;
}
</style>
<script type="text/javascript">
function timer(){
var ts = (new Date(2014, 11, 1, 9, 0, 0)) - (new Date());//倒计时停止时间(目标时间,月份因为从0开始,所以月份需要+1,11月实则是12月)
console.log(ts);
var dd = parseInt(ts / 1000 / 60 / 60 / 24, 10);//计算剩余的天数
var hh = parseInt(ts / 1000 / 60 / 60 % 24, 10);//计算剩余的小时数
var mm = parseInt(ts / 1000 / 60 % 60, 10);//计算剩余的分钟数
var ss = parseInt(ts / 1000 % 60, 10);//计算剩余的秒数
document.getElementById("timer").innerHTML = dd + "天" + hh + "时" + mm + "分" + ss + "秒";
}
setInterval(timer,1000);
</script>
</head>
<body onload = "timer()">
<div class = "daojishi">
<h2>剩余时间为:</h2>
<div id = "timer">
</div>
</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>倒计时</title>
<style type= "text/css">
.daojishi h2{
font-family:Helvetica, Microsoft YaHei, Arial, sans-serif;
font-size:14px;
margin-bottom:5px;
color:#151515;
}
.daojishi #timer{
font-family:Helvetica, Microsoft YaHei, Arial, sans-serif;
font-size:14px;
color:#151515;
font-weight:bold;
}
</style>
<script type="text/javascript">
function timer(){
var ts = (new Date(2014, 11, 1, 9, 0, 0)) - (new Date());//倒计时停止时间(目标时间,月份因为从0开始,所以月份需要+1,11月实则是12月)
console.log(ts);
var dd = parseInt(ts / 1000 / 60 / 60 / 24, 10);//计算剩余的天数
var hh = parseInt(ts / 1000 / 60 / 60 % 24, 10);//计算剩余的小时数
var mm = parseInt(ts / 1000 / 60 % 60, 10);//计算剩余的分钟数
var ss = parseInt(ts / 1000 % 60, 10);//计算剩余的秒数
document.getElementById("timer").innerHTML = dd + "天" + hh + "时" + mm + "分" + ss + "秒";
}
setInterval(timer,1000);
</script>
</head>
<body onload = "timer()">
<div class = "daojishi">
<h2>剩余时间为:</h2>
<div id = "timer">
</div>
</div>
</body>
</html>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
倒计时,无非就是设定一个数值进行减法,settimeout(“”,1000),设定时间间隔1秒,倒计时的话,只要一次递减,用一个for循环也好,或者while也好;
如果想用系统时间,先获取 Date();然后给予一个变量赋值Date();再将时间进行倒叙减数字,需要换算成秒,然后转换成时间格式,就会倒计时,不过很别扭,还是建议用设定时间的那种,因为要方便些,而且合乎常理。
如果想用系统时间,先获取 Date();然后给予一个变量赋值Date();再将时间进行倒叙减数字,需要换算成秒,然后转换成时间格式,就会倒计时,不过很别扭,还是建议用设定时间的那种,因为要方便些,而且合乎常理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题问的语句都不通顺。。。。不能正常显示是显示的什么?还是什么都没有显示?还是显示不到秒?。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询