分享

写回答

发帖

[提问] asp访问统计时间不正确

GoDaddy GoDaddy 942 人阅读 | 4 人回复

发表于 2010-11-20 17:11:40 | 显示全部楼层 |阅读模式

比如,我电脑时间是今天15点09分,但是统计程序上显示如下:
11/20/2010 1:38:18 AM        Windows XP        未知        188.39.36.177

误差十几个小时呢,请问应该找到哪句代买修正呢?我按论坛的教材,找了很久,都不知道哪句代码跟这段错误显示的时间有关系。

回答|共 4 个

add.c

发表于 2010-11-20 17:19:33 | 显示全部楼层

config文件,加入date_default_timezone_set('UTC+8');  试试

aixue

发表于 2010-11-20 17:28:30 | 显示全部楼层

谢谢版主!

aixue

发表于 2010-11-21 03:38:16 | 显示全部楼层

我找到了那组控制这个统计程序的时间代码,但是是这样的,不知如何修改,才能达到目的:

                '--------获取常规变量并写进数据库--------
fyear=year(now)'判断当前年份
fmonth=month(now)'判断当前月份
fday=day(now)'判断当前日期
fhour=hour(now)'判断当前小时
fweek=weekday(now)'判断当前星期
fweeknum=Datepart("ww",now())'判断当前周数
fsystem=browser(Request.ServerVariables("HTTP_USER_AGENT"))'获取浏览器
fwindows= system(Request.ServerVariables("HTTP_USER_AGENT"))'获取操作系统
furl=request("webcome")  '获取来访地址
fip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if fip = "" then fip = Request.ServerVariables("REMOTE_ADDR")'获取来访ip
sql="select vdate,vtotal,vtoday,vip,vmonth,vyear,vnowmonth,vweek,vweeknum from vcount where vuser='"&view&"'"
set rs=conn.execute(sql)
if not rs.eof then
sql1 ="insert into fcount (fuser,fyear,fmonth,fday,fweek,fweeknum,fhour,fsystem,fwindows,furl,fip) values('"&view&"','"&fyear&"','"&fmonth&"','"&fday&"','"&fweek&"','"&fweeknum&"','"&fhour&"','"&fsystem&"','"&fwindows&"','"&furl&"','"&fip&"')"
conn.execute(sql1)
        '--------结束写进--------

add.c

发表于 2010-11-21 09:22:42 | 显示全部楼层

代码我不懂, 给你常见的解决方式:


<%=DateAdd("h", 8,rs("dateandtime"))%>
做全局的函数,比如定义一个mynow的函数代替系统的now函数,也可以在具体的应用的时候换算一下,比如刚才的<%=DateAdd("h", 8,rs("dateandtime"))%>,就是代替他原来的<%=rs("dateandtime")%>,如果时差是8小时的话

输出时间+15小时
rs("time")=DateAdd("h",15,now())
写入的时候时间+15小时
<%=DateAdd("h",15,rs("time"))%>
如果asp代码修改的地方实在太多,就直接修改数据库吧,
我这里是在ACC数据库里修改时间字段的默认值为:服务器所在地时间+15小时
DateAdd("h",15,now())

自己定义 mynow 函数代替系统的now函数
dim mynow
mynow = DateAdd("h",15,now())
这样以后就省事了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则