在PHP代码中取得当前日期时间再插入数据库 默认情况下,PHP解释显示的时间为“林威治标准时间”,与我们本地的时间相差8个小时 ,所以date(“Y-m-d H:i:s”)得出的时间比当前时间少了8个小时。 gmdate(“Y-m-d H:i:s”)函数得出的时间是经过与GMT相加减过的,
在PHP代码中取得当前日期时间再插入数据库
默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时
,所以date(“Y-m-d H:i:s”)得出的时间比当前时间少了8个小时。
gmdate(“Y-m-d H:i:s”)函数得出的时间是经过与GMT相加减过的,能得到本地时间,但要在
PHP.ini中用date.timezone这个选项设置时区,但默认是关闭的,而且在部分PHP版本中无法
正常实现。
一个比较好的实现的方法,手动修正时差,如下:
1 2 3 4 5 | $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>" ;
|
Copy after login
都输出如下格式:2007-11-24 17:41:58
根据上述的知识,很快,我顺利插入了数据,代码如下:
1 2 3 4 5 6 7 8 9 10 11 | public function actionAdd() {
$news_model = new News();
$news_model ->title = "测试的第6条新闻标题" ;
$news_model ->pubdate = date ( "Y-m-d H:i:s" , time() + 8 * 3600);
$news_model ->author = "yuanpengfei" ;
if ( $news_model ->save()) {
echo "success save" ;
} else {
echo "failed save" ;
}
}
|
Copy after login