在php编程中,所谓的时间问题归根结底也就是“时区”问题。
首先,要明白:
1、美国时间和中国时间相差应该是8小时。
2、PHP的时间和mysql的时间不是相同的。
所以,操作:
1、把美国时间改成中国时间。
2、并且要把PHP的时间和MySQL的时间统一。
一、修改MySQL时间
请在PHP程序有数据库连接的下一语句(只有1次,就加1句;若有无数次,就加无数次)加入代码:
mysql_query("SET time_zone = '+8:00'") or die('时区设置失败,请联系管理员!');
再去SELECT NOW();下,MySQL也是中国时间了。为什么是+8:00呢
中国时间和美国时间差8小时,现在MySQL的时间也搞定了。
如何证明PHP的时间和MySQL的时间是同步呢?
php时区设置的检测代码:
<?php
//这里是页面的开头,用于改PHP时间的代码。
date_default_timezone_set('PRC') or die('时区设置失败,请联系管理员!');
//数据库一旦连接,紧跟着就是改MySQL时间的代码。
mysql_query("SET time_zone = '+8:00'") or die('时区设置失败,请联系管理员!');
//显示PHP的时间
echo date('Y-m-d H:i:s');
echo
//显示MySQL的时间
$mysql_time = mysql_query("SELECT NOW()");
$mysql_rows = mysql_fetch_row($mysql_time);
echo $mysql_rows[0];
二、修改PHP时间
首先,改PHP的时间,将这句代码插入到PHP程序中,公共调用页的顶部(要include_once,require_once到的脚本里,当然不
用_once我也没有意见),确保需要用到时间的页面都必须调用到:
date_default_timezone_set('PRC') or die('时区设置失败,请联系管理员!');
测试:
echo date('Y-m-d H:i:s');
正确显示中国时间了
在MySQL中输入语句SELECT NOW();MySQL的时间还是美国时间。
返回到上一步,发现mysql时区已设置好了。