*****这个网站js时间是怎么实现的(http://www.goumaike.com/)

OceanRain 2010-09-20 05:31:46
今天逛团购网站,发现一个名为购买客的网站做的蛮好,尤其是那个倒计时!

这个名为购买客的网站列表页,有动态变化的时间,请问这个时间是怎么实现的?

它每一秒都在发生变化,不往数据库里面写吗?如果刷新页面的话,如何保持时间不会恢复默认状态?

如果是取客户端的时间,那么客户端调整时间的话,会不会出错.

这个网址也有类似的效果http://www.goumaike.com/beijing-tuangou
...全文
119 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
majic2008 2010-09-21
这确实是广告帖
回复
michael_ls 2010-09-21
广告。。。

回复太快,请先休息一下!
回复
jason1317 2010-09-21
有计时器控件啊
回复
wwfgu00ing 2010-09-21
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<title>实时倒计时</title>
<meta http-equiv="content-Type" content="text/html;charset=gb2312">
</head>
<body>
<!--单位:秒-->
剩余时间:<span id="endtime">10</span>
<script type="text/javascript">
var CID = "endtime";
if(window.CID != null)
{
var iTime = document.getElementById(CID).innerText;
var Account;
RemainTime();
}
function RemainTime()
{
var iDay,iHour,iMinute,iSecond;
var sDay="",sHour="",sMinute="",sSecond="",sTime="";
if (iTime >= 0)
{
iDay = parseInt(iTime/24/3600);
if (iDay > 0)
{
sDay = iDay + "天";
}
iHour = parseInt((iTime/3600)%24);
if (iHour > 0){
sHour = iHour + "小时";
}
iMinute = parseInt((iTime/60)%60);
if (iMinute > 0){
sMinute = iMinute + "分钟";
}
iSecond = parseInt(iTime%60);
if (iSecond >= 0){
sSecond = iSecond + "秒";
}
if ((sDay=="")&&(sHour=="")){
sTime="<span style='color:darkorange'>" + sMinute+sSecond + "</font>";
}
else
{
sTime=sDay+sHour+sMinute+sSecond;
}
if(iTime==0){
clearTimeout(Account);
sTime="<span style='color:green'>时间到了!</span>";
}
else
{
Account = setTimeout("RemainTime()",1000);
}
iTime=iTime-1;
}
else
{
sTime="<span style='color:red'>倒计时结束!</span>";
}
document.getElementById(CID).innerHTML = sTime;
}
</script>
</body>
</html>
回复
newdigitime 2010-09-20
楼主是在为这网站做推广呢.近几天总是发这个内容的贴子.

要想效果好,不能总呆在一个网站里做宣传啊.
回复
GlyphVectory 2010-09-20
这种很简单的。比如说。每一个产品都有一个时间到期的字段。它现在服务器那边对比时间,但后等到了客户端然后用js做一个倒计时时间。(根据到期时间于服务器时间的差)
回复
lzlhappy 2010-09-20
没看出来是怎么做的。
回复
T_long 2010-09-20
应该跟缓存有关系吧…………
回复
parverxiao 2010-09-20
这里有个例子:
<SCRIPT language=JavaScript>
var auctionDate = 120;
var startTime = (new Date()).getTime();
var Temp;
var timerID = null;
var timerRunning = false;
function showtime()
{
now = new Date();
var ts=parseInt((startTime-now.getTime())/1000)+auctionDate;
var dateLeft = 0;
var hourLeft = 0;
var minuteLeft = 0;
var secondLeft = 0;
if(ts < 0)
{
ts = 0;
CurHour = 0;
CurMinute = 0;
CurSecond = 0;
} else {
dateLeft =parseInt(ts/86400);
ts = ts - dateLeft * 86400;
hourLeft = parseInt(ts/3600);
ts = ts - hourLeft * 3600;
minuteLeft = parseInt(ts/60);
secondLeft = ts - minuteLeft * 60;
}
if(hourLeft < 10) hourLeft = '0' +hourLeft;
if(minuteLeft < 10) minuteLeft = '0' +minuteLeft;
if(secondLeft<10) secondLeft='0'+secondLeft;
if( dateLeft > 0 )
dateLeft = dateLeft + "天" ;
else
dateLeft = "";
if( hourLeft > 0 )
hourLeft = hourLeft + "小时" ;
else
{
if( dateLeft != "" )
hourLeft = "00小时";
else
hourLeft = "";
}
if( minuteLeft > 0 )
minuteLeft = minuteLeft + "分钟" ;
else
{
if( dateLeft !="" || hourLeft != "")
minuteLeft = "00分钟";
else
minuteLeft = "";
}
if( secondLeft > 0 )
secondLeft = secondLeft + "秒" ;
else
{
if( dateLeft !="" || hourLeft != "" || minuteLeft != "")
secondLeft = "00秒";
else
secondLeft = "";
}
if (dateLeft == '') {
Temp=dateLeft+hourLeft+minuteLeft+secondLeft ;
}else {
Temp=dateLeft+hourLeft;
}
if(dateLeft <=0 && hourLeft<=0 && minuteLeft<=0 && secondLeft <=0)
{
Temp = "成交结束";
stopclock();
}
if (document.getElementById('time2')) document.getElementById('time2').innerHTML=Temp;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
function stopclock()
{
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function macauclock()
{
stopclock();
showtime();
}
function onloadall()
{
macauclock();
try
{
initprovcity();
}
catch(e)
{
}
}
try
{
onload=onloadall();
}
catch(e)
{
}
</SCRIPT>
生成页面的时候把剩余的秒数写在<font id="time2">18595</font>里面,js初始化设置下变量auctionDate就可以了。
回复
dalmeeme 2010-09-20
在服务器上求出现在时间和到期时间的差值,传给前台,然后js倒计时之。没什么特别的技术含量。
回复
parverxiao 2010-09-20
倒计时功能吧,网上应该有类似的脚本的
回复
dalmeeme 2010-09-20
取的应该是服务器的时间,然后js接过时间值做了个倒计时。
回复
OceanRain 2010-09-20
就是列表中有剩余时间的项
回复
zhengmushang 2010-09-20
数据一次读取出来,放在div 里面。用js控制div偏移量。
回复
huangmin3956 2010-09-20
没看到
回复
相关推荐
发帖
非技术区
创建于2007-09-28

7708

社区成员

.NET技术 非技术区
申请成为版主
帖子事件
创建了帖子
2010-09-20 05:31
社区公告
暂无公告