gpt4 book ai didi

php - 将 mssql 日期时间对象转换为 PHP 字符串

转载 作者:IT王子 更新时间:2023-10-29 00:00:05 26 4
gpt4 key购买 nike

我正在从数据库中获取一些信息并且记录是 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

在将数据传递给 PHP 之前,我也曾尝试在 SQL 中格式化数据,并且 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 native PHP SQL Server extension returns a string where as the Microsoft extension returns a DateTime object. So if you are expecting a string, you’ll need to adjust your code accordingly.

它继续解释说,您可以简单地向对数据库的请求添加一个附加参数,指定您希望将日期作为字符串返回。 只需添加 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);

然后您可以使用 $conn 作为您的 sqlsrv 数据库连接,只有日期将作为字符串返回,而不是 DateTime 对象。

或者,如果您想要的只是日期时间之外的时间戳,您可以调用:

$myDateTimeObject->getTimestamp();

关于php - 将 mssql 日期时间对象转换为 PHP 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com