应该是你时区设置不对。
美国东部时间是GMT-5,北京时间是GMT+8,中间相隔13个小时,正好符合你现在情况。
调整一下你的Linux系统时间,确认一下时区,应该就可以了。。
Good luck。
目前你遇到的问题大概是 PHP 获取的时间和 MySQL中获取的时间存在时差比较直接的解决方案是在 PHP 和 MySQL 中遵循同一时区约定
PHP 在5.0 之后应该可以直接在代码中设定时区
date_default_timezone_set('PRC')
MySQL 也可以通过修改配置文件 my.ini 或者 my.cnf 确保时区正确
default-time-zone=timezone
问题是你的MySQL服务器可能是在某台美国服务器上租借的,没法修改
所以解决的方法只能是:
修改插件源代码,将 SQL 语句改为
select forum_id, count(post_id) todayposts
from ' .POSTS_TABLE. '
where date(from_unixtime(post_time)) = date(DATE_ADD(now(), INTERVAL 14 HOUR))
group by forum_id
其中的 DATE_ADD(now(), INTERVAL 14 HOUR) 是-14 还是 14,这需要你仔细考虑下
把php.ini中的date.timezone =修改成 date.timezone = PRC重启即可 还有我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2005年7月26日的命令如下。 #date -s 03/28/2008 将系统时间设定成下午11点12分0秒的命令如下。 #date -s 11:24:00 注意,这里说的是系统时间,是linux由 *** 作系统维护的。 在系统启动时,Linux *** 作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。 #clock -w 这个命令强制把系统时间写入CMOS。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)