php向Postgresql中插入时间格式问题

最近在对接互联网医院监管前置机时,向前置机Postgresql数据库插入数据时出现了一个问题,就是我在数据插入前置机前把时间用date(‘Y-m-d h:i:s’,strtotime($info[‘modified’]))格式化后,插入Postgresql数据库后下午的时间会变成上午的时间。

php向Postgresql中插入时间格式问题
格式化代码
php向Postgresql中插入时间格式问题

看到这种情况,首先我猜应该是Postgresql的时间格式可能有些区别,于是开始搜索Postgresql 时间格式,根据网上的信息,我大概知道postgresql可以配置不同的时间格式。

php向Postgresql中插入时间格式问题

那我就先看看前置机上用的是什么样的风格吧?

show datestyle

php向Postgresql中插入时间格式问题

好像是很通常的格式,但是我看到了ISO这个关键词,那我用标准的ISO时间格式插入呢?于是将时间格式转换改成date(DATE_ISO8601)方式。

php向Postgresql中插入时间格式问题
php时间格式化为ISO8601方法
php向Postgresql中插入时间格式问题

再上传就ok啦,因为平时都是在php+mysql的环境中开发,用习惯了’Y-m-d h:i:s’这种方式,没有出现过什么问题,所以,也就没有注意过时间格式这些细节。所以在这里记录一下,给可能碰到类似问题的人一个解决思路。

除了DATE_ISO8601还有如下常量可以使用。

php向Postgresql中插入时间格式问题

原创文章,作者:Zeyu,如若转载,请注明出处:https://jinzhijun.cn/develop/575

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注