今晚在写yii中给一个对象模型插入时间类型数据的时候,发现总是插入不成功,百度了下,终于搞定。
首先是参考下面的资料:
在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
根据上述的知识,很快,我顺利插入了数据,代码如下:
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";
}
}
数据库数据如下:
文章的脚注信息由WordPress的wp-posturl插件自动生成
微信扫一扫,打赏作者吧~![[整理][转载]win下网卡抓包发包库Npcap使用](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2023/08/demo_1-1024x711.jpg&w=280&h=210&zc=1)
![[转载]基础数据char,int,double,string是线程安全的吗?](http://www.jyguagua.com/wp-content/themes/begin/img/random/20.jpg)
![[整理]how to run flask with pyqt5](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2021/03/pyqt_flask.png&w=280&h=210&zc=1)
![[已解决]LINK : fatal error LNK1158: cannot run 'rc.exe' 错误的解决办法](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2021/02/Snipaste_2021-02-17_15-18-26-1024x505.png&w=280&h=210&zc=1)