我从数据库抓取一些信息,并且记录是MSsql DateTime格式,当我返回它,它显示在我的数组如下:
[arrayItem] => DateTime Object ( [date] => 2008-06-05 09:14:11 [timezone_type] => 3 [timezone] => Europe/London )
当我尝试提取这个数组(即$array [arrayItem] [date])我得到一个错误:
Fatal error: Cannot use object of type DateTime as array
我也在sql中将数据格式化到PHP之前,并且strtotime函数并没有快乐.
任何建议将是非常欢迎,我正在撕裂我的头发与这一个!
谢谢
这也引起了我的关注.
希望这将帮助你,因为它有我自己:)
http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/
When querying against a column defined as a
datetime
,the 07001 returns a string where as the 07002 returns a DateTime object. So if you are expecting a string,you’ll need to adjust your code accordingly.
它继续解释,您可以简单地向数据库的请求添加一个附加参数,指定您希望将日期作为字符串返回.只需添加ReturnDatesAsStrings参数即可.
例:
$connectionParams = array( 'USR'=>'user','PASS'=>'pass','Database'='myDatabase','ReturnDatesAsStrings'=>true //<-- This is the important line ); $conn = sqlsrv_connect('127.0.0.1',$connectionParams);
然后,您可以像您常规的sqlsrv数据库连接一样使用$conn,只有日期将返回为字符串,而不是DateTime对象.
或者,如果你想要的是datetime中的时间戳,你可以调用:
$myDateTimeObject->getTimestamp();