为什么没有正确使用PHP / MSSQL的日期/时间?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了为什么没有正确使用PHP / MSSQL的日期/时间?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近将服务器上运行的 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

这确定了日期.

知道为什么.

脚本宝典总结

以上是脚本宝典为你收集整理的为什么没有正确使用PHP / MSSQL的日期/时间?全部内容,希望文章能够帮你解决为什么没有正确使用PHP / MSSQL的日期/时间?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。