我正在从数据库中获取一些信息,记录采用 MSSQL DateTime 格式,当我返回它时,它在我的数组中显示如下:
[arrayItem] => DateTime Object
(
[date] => 2008-06-05 09:14:11
[timezone_type] => 3
[timezone] => Europe/London
)
当我尝试将其提取为数组时(即$array[arrayItem][date]
)我收到错误:
致命错误:无法将 DateTime 类型的对象用作数组
我还尝试过在将数据传递给 PHP 之前在 SQL 中格式化数据,以及 strtotime 函数,但没有任何乐趣。
任何建议都将非常受欢迎,我正在为这个而抓狂!
Thanks
这也让我困惑了好几次。
希望这对你有帮助,就像我自己一样:)
http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/ https://web.archive.org/web/20151024053409/https://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/
这是该页面的要点,以防链接失效。
当查询定义为 a 的列时datetime
, the 原生 PHP SQL Server 扩展 http://www.php.net/manual/en/ref.mssql.php返回一个字符串,其中微软扩展 https://www.microsoft.com/en-us/download/details.aspx?id=20098返回一个日期时间对象。因此,如果您需要一个字符串,则需要相应地调整代码。
它继续解释说,您可以简单地向数据库请求添加一个附加参数,指定您希望将日期作为字符串返回。只需添加ReturnDatesAsStrings
参数,指定true
.
Example:
$connectionParams = array(
'USR'=>'user',
'PASS'=>'pass',
'Database'='myDatabase',
'ReturnDatesAsStrings'=>true //<-- This is the important line
);
$conn = sqlsrv_connect('127.0.0.1',$connectionParams);
然后你可以使用$conn
正如您经常对 sqlsrv 数据库连接所做的那样,只有日期会作为字符串返回,而不是 DateTime 对象。
交替,如果您想要的只是日期时间之外的时间戳,您可以调用:
$myDateTimeObject->getTimestamp();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)