Nic*_*ick 14 php sql-server datetime
我从数据库中获取一些信息并且记录采用MSSQL DateTime格式,当我返回时,它在我的数组中显示如下:
[arrayItem] => DateTime Object
(
[date] => 2008-06-05 09:14:11
[timezone_type] => 3
[timezone] => Europe/London
)
Run Code Online (Sandbox Code Playgroud)
当我尝试将其提取为数组(即$array[arrayItem][date]
)时出现错误:
致命错误:无法使用DateTime类型的对象作为数组
我还尝试在将数据传递给PHP之前在SQL中格式化数据,并且strtotime函数并没有任何乐趣.
任何建议都会非常受欢迎,我正在用这个推出我的头发!
谢谢
Bri*_*ian 26
这也让我感到很沮丧.
希望这会帮助你,因为它有我自己:)
http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/
这是该页面所说内容的要点,以防链接出现故障.
查询定义为a的列时
datetime
,本机PHP SQL Server扩展返回一个字符串,其中Microsoft扩展返回DateTime对象.因此,如果您需要字符串,则需要相应地调整代码.
它继续解释您可以简单地向数据库的请求添加一个附加参数,指定您希望将日期作为字符串返回. 只需添加ReturnDatesAsStrings
参数,指定即可true
.
例:
$connectionParams = array(
'USR'=>'user',
'PASS'=>'pass',
'Database'='myDatabase',
'ReturnDatesAsStrings'=>true //<-- This is the important line
);
$conn = sqlsrv_connect('127.0.0.1',$connectionParams);
Run Code Online (Sandbox Code Playgroud)
然后,您可以$conn
像定期使用sqlsrv数据库连接一样,只有日期将作为字符串返回,而不是DateTime对象.
或者,如果您想要的只是日期时间之外的时间戳,您可以调用:
$myDateTimeObject->getTimestamp();
Run Code Online (Sandbox Code Playgroud)
你应该像下面这样访问它们.关联索引arrayItem
包含一个具有某些属性的对象.
$array['arrayItem']->date;
$array['arrayItem']->timezone_type;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40959 次 |
最近记录: |