| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1005 人关注过本帖
标题:关于时间停留问题,请大家帮忙看看,谢谢!
只看楼主 加入收藏
zhanghaidang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-16
收藏
 问题点数:0 回复次数:4 
关于时间停留问题,请大家帮忙看看,谢谢!

我想计算一下进入一个网页的停留时间,代码如下,有问题,请大家帮忙看一下。

<html> <head> <scritp language="JavaScript"> var onetime=new Date(); //定义一个时间对象 var time1=onetime.getTime(); //得到一个时间(进入网页的时间)

function time3() { var twotime=new Date();//定义一个时间对象 var time2=twotime.getTime();// 得到一个时间(调用函数时的时间) return((time2-time1)/1000);//两个时间相减即为停留网页的时间(总秒数) }

function stoptime() { var totals=Math.round(time3());//将time3返回的总秒数取整 var F=totals%60; //为停留分钟 var M=Math.round(totals-F*60);//秒为总秒数减去分数*60 var H=F%60; var str=""; if(H<10) { str="0"+H+":"; } else { str=H+":"; } if(F<10) { str=str+"0"+F+":"; } else { str=str+F+":"; }

if(M<10) { str=str+"0"+M; } else { str=str+M; }

window.document.write(str); window.setTimeout('stoptime()',1000); </script> </head> </html>

请大虾指点一下。最好请注明解释,我是新手,基础不是太好,谢谢。

搜索更多相关主题的帖子: 时间 
2004-12-23 21:34
zhanghaidang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-16
收藏
得分:0 

<script LANGUAGE="JAVASCRIPT"> <!-- var dstart=new Date(); var tstart=dstart.getTime(); function getdt() { var tnow=new Date(); return((tnow.getTime()-tstart)/1000); } function showsecs() { var totals=Math.round(getdt()); var secss=totals%60; var minss=Math.round((totals-30)/60); // 不明白为什么要这样做? totals-30)/60 var ssecs=""+((secss>9)?secss:"0"+secss); var smins=""+((minss>9)?minss:"0"+minss); document.fm0.timesp.value=smins+":"+ssecs; window.setTimeout('showsecs()',1000); } </script>

这是别人的一段代码,却能实现此功能,我有几个地方不太明白,请指点一下。

2004-12-23 21:39
bingxue2332
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:446
专家分:0
注 册:2004-11-6
收藏
得分:0 

下面的代码应该可以满足你的要求了

<html> <body onunload ="show()"> <script language="JavaScript"> <!-- var time_start = new Date(); var clock_start = time_start.getTime(); function get_time_spent() { var time_now = new Date(); return((time_now.getTime() - clock_start)/1000); } function show() { var i_total_secs = Math.round(get_time_spent()); var i_secs_spent = i_total_secs % 60; var i_mins_spent = Math.round((i_total_secs-30)/60); var s_secs_spent = "" + ((i_secs_spent>9) ? i_secs_spent : "0" + i_secs_spent); var s_mins_spent = "" + ((i_mins_spent>9) ? i_mins_spent : "0" + i_mins_spent); window.alert( s_mins_spent + "分" + s_secs_spent + "秒") } </script> </body> </html>


2004-12-23 22:02
bingxue2332
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:446
专家分:0
注 册:2004-11-6
收藏
得分:0 

是这个地方不明白啊

这个关键是解决数学函数的问题,当取得的时间(秒数目)除以60后余数大于30秒

那么取整函数就四舍五入,进一了,不足一分钟但是却显示多了一分钟

你去掉这一行,等上45秒,看看是不是显示的 [QUOTE]1分 49 秒[/QUOTE] 了

慢慢等吧!


2004-12-23 22:20
zhanghaidang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-16
收藏
得分:0 

我如果想用我那种笨方法应该怎么样做呢,请指点一下,我觉得我那样的方法更能让初学者明白一些,我认为秒数为总秒数减去分数*60,我想用字符串将“小时:分钟:秒”连接起来的方法做应该怎么样做,谢谢,请给出原代码,谢谢。

2004-12-26 20:42
快速回复:关于时间停留问题,请大家帮忙看看,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015031 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved