为什么没有正确使用PHP / MSSQL的日期/时间?
发布时间:2020-12-13 22:47:25 所属栏目:PHP教程 来源:网络整理
导读:我最近将服务器上运行的 PHP版本升级到5.3.20.从那以后,每当我从MSSQL数据库(mssql_query)中提取日期时,我就会得到奇怪的错误日期. 我检查了区域设置,默认时区设置为’Australia / Brisbane’,我还检查了php.ini设置并确认mssql.datetimeconvert已关闭.当选
我最近将服务器上运行的
PHP版本升级到5.3.20.从那以后,每当我从MSSQL数据库(mssql_query)中提取日期时,我就会得到奇怪的错误日期.
我检查了区域设置,默认时区设置为’Australia / Brisbane’,我还检查了php.ini设置并确认mssql.datetimeconvert已关闭.当选项打开时,日期似乎通过预先格式化(没有秒),但是当关闭该选项时,我得到一个看起来像这样的日期.
有一个简单的解决方案吗? 以下是比较mysql / mssql源之间输出的代码: $rs = $db->query("select id,servertime from bobstable where id = 86427420"); $mss_set = mssql_query("select id,servertime from T_bobstable WITH (NOLOCK) where id = 86427420"); $myrow = $rs->fetch_assoc(); $msrow = mssql_fetch_array($mss_set); var_dump($myrow); echo "<br>"; var_dump($msrow); 产出如下: array(2) { ["id"]=> string(8) "86427420" ["servertime"]=> string(19) "2013-02-08 14:00:24" } array(4) { [0]=> float(86427420) ["id"]=> float(86427420) [1]=> string(19) "2013-08-39 24:673:0" ["servertime"]=> string(19) "2013-08-39 24:673:0" } 这是我从SQL Server Studio收到的输出 2013-02-08 14:00:24.673 我可以理解它是如何被格式化的(因为下面已经解决了问题的这一部分),但是我无法理解为什么它会以这种格式出现,或者如何更改PHP的配置以避免这种情况.在我升级PHP之前,它曾经是2013-02-08 14:00:24.有没有人经历过或看到过这种情况? 解决方法
找到一个似乎坚持的解决方案: –
我降级了服务器上安装的FreeTDS版本: freetds.x86_64 0.91-2.el5 to freetds.x86_64 0.64-11.el5.centos 这确定了日期. 不知道为什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |