方法一: 在PHP代码中取得当前日期时间再插入数据库
默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时
,所以date("Y-m-d H:i:s")得出的时间比当前时间少了8个小时。
gmdate("Y-m-d H:i:s")函数得出的时间是经过与GMT相加减过的,能得到本地时间,但要在
PHP.ini中用date.timezone这个选项设置时区,但默认是关闭的,而且在部分PHP版本中无法
正常实现。
一个比较好的实现的方法,手动修正时差,如下:
$timeoffset = 8;
echo gmdate("Y-m-d H:i:s", mktime() + $timeoffset * 3600) . "<br>";
echo gmdate("Y-m-d H:i:s", time() + $timeoffset * 3600) . "<br>";
echo date("Y-m-d H:i:s", mktime() + $timeoffset * 3600) . "<br>";
echo date("Y-m-d H:i:s", time() + $timeoffset * 3600) . "<br>";
都输出如下格式:2007-11-24 17:41:58
$t = gmdate("Y-m-d H:i:s", mktime() + 8 * 3600)
$sql = "insert into xxxx (addDateTime) values ($t)"
方法二: 在SQL语句中使用MYSQL内置的函数取得当前日期时间
使用now()函数
insert into xxxx (addDateTime) values (now())
小结:
相比上述两种方法,使用MYSQL内置函数比较好
更多参考:
[转载] PHP日期与时间函数库
[转载] PHP的日期时间函数date()