我有2台服务器,每台运行完全相同的PHP版本(5.3.5-1ubuntu7.8)。它们也是Ubuntu(11.04)完全相同的版本。我编写了一个PHP脚本来连接到SQL Server 2008 R2数据库,选择一个日期时间值,然后将print_r()写入屏幕。
当我在一台服务器上运行脚本时,将以以下格式返回日期时间:2011-08-20 00:00:00.000。当我在另一台服务器上运行它时,使用完全相同的脚本从同一个数据库记录中提取,我得到这种格式:2011年8月20日12:00:00.000AM。
我的问题是我无法弄清楚我的服务器上的差异导致了我的日期时间格式的差异。我已经在php.ini文件中使用了Apache和CLI的mssql.datetimeconvert设置,但没有用。
之前是否有人遇到此问题并确定是什么原因造成的?在决定重建服务器之前,我们非常感激任何想法。谢谢!
答案 0 :(得分:0)
PHP无法以特定格式格式化日期时间值吗?这可能与操作系统上的本地区域设置有关,而不是其他任何事情,但您始终可以从SQL Server请求特定格式,而不是依赖PHP或O / S以巧合的方式格式化它们。
SELECT CONVERT(CHAR(10), col, 120) + ' ' + CONVERT(CHAR(8), col, 108)
FROM dbo.table;
也就是说,PHP可能是最好的地方,但我必须道歉 - 我不熟悉PHP,告诉你如何做到这一点(例如,在C#中,你会使用{ {1}})。
从这里开始:
http://php.net/manual/en/datetime.format.php
看起来不只是将字符串转储到您应该使用的屏幕
.Format()
对于Ubuntu服务器上的默认格式,此博客文章也可能有用:
http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/