Ubuntu PHP 服务器之间的日期时间格式差异


Datetime format discrepancies between Ubuntu PHP servers

我有2台服务器,每台服务器运行完全相同版本的PHP(5.3.5-1ubuntu7.8)。 它们也是完全相同的Ubuntu版本(11.04)。 我编写了一个 PHP 脚本来连接到 SQL Server 2008 R2 数据库,选择一个日期时间值,然后将其print_r() 到屏幕上。

当我在一台服务器上运行脚本时,datetime 按以下格式返回:2011-08-20 00:00:00.000。 当我在另一台服务器上运行它时,使用完全相同的脚本从同一数据库记录中提取,我得到以下格式:Aug 20 2011 12:00:00.000AM。

我的

问题是我无法弄清楚我的服务器上的差异在哪里,导致我的日期时间格式的差异。 我已经在 Apache 和 CLI 的 php.ini 文件中使用了 mssql.datetimeconvert 设置,但无济于事。

以前有没有人遇到过这个问题并确定是什么原因造成的? 在我决定重建服务器之前,非常感谢任何想法。谢谢!

PHP 是否能够以特定格式格式化日期时间值?这可能与操作系统上的本地区域设置有关,而不是其他任何设置,但您始终可以从 SQL Server 请求特定格式,而不是依靠 PHP 或 O/S 以相同的方式格式化它们。

SELECT CONVERT(CHAR(10), col, 120) + ' ' + CONVERT(CHAR(8), col, 108)
FROM dbo.table;

也就是说,PHP 可能是执行此操作的最佳位置,但我必须道歉 - 我对 PHP 不够精通,无法告诉您如何做到这一点(例如,在 C# 中,您会使用 .Format() )。

从这里:

http://php.net/manual/en/datetime.format.php

看起来而不是只是将字符串转储到您应该使用的屏幕

echo date_format($date_var_from_rs, 'Y-m-d H:i:s');

至于 Ubuntu 服务器上的默认格式,这篇博文也可能很有用:

http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/