【问题标题】:how to retrieve a sql datetime object with a php $row?如何使用 php $row 检索 sql 日期时间对象?
【发布时间】:2011-11-20 15:11:57
【问题描述】:

例如:

$sql = "SELECT * FROM db";
$query = sqlsrv_query($conn, $sql);

while($row = sqlsrv_fetch_array($query)){
    echo "$row[date_column]";
}

会崩溃

我找到的大多数答案都假设您想按日期时间对查询进行排序,但我只想在获得所有行后将日期时间对象转换为字符串。

我不太明白如何使用 php date() 函数, 我试过了:

echo date("m/d/Y",$row[date_column]); //prints nothing

【问题讨论】:

  • 这是更多的 mssql 问题而不是 php

标签: php sql-server datetime


【解决方案1】:
$string=$row["date_column"]->format('Y-m-d H:i:s')

【讨论】:

    【解决方案2】:

    首先,如果“date_column”是列名,它应该用引号引起来,像这样:

    echo $row["date_column"];
    

    其次,PHP 有一个内置函数可以将 MYSQL 日期时间转换为一个 unix 时间戳,PHP date() 可以使用该时间戳。试试这个:

    echo date("m/d/Y", strtotime($row["date_column"]));
    

    干杯!

    【讨论】:

    • 问题是询问 MSSQL,而不是 MySQL,但我不明白为什么这种方法对两者都不起作用。
    • 哎呀,你的权利!但是是的,如果 MSSQL 存储相同的日期时间,它应该。
    • 您好,感谢您的回答,但是,我从echo date("m/d/Y", strtotime($row["date_column"]); 得到的是每个条目的日期:12/31/1969。此外,这不是任何条目的正确日期。
    • 当 PHP date() 的输入值错误时,您将获得该日期。所以我可以帮助你更多,我可以有一个“echo $row [”date_column“];”的样本吗?生产?
    • 这很奇怪。当我在我的服务器上尝试使用您提供的格式时,它可以工作。我正在尝试的代码是: "$time = "2001-01-13 10:45:55.123"; echo date("m/d/Y", strtotime($time));"产生:“01/13/2001”。当您尝试“echo strtotime($row["date_column"]);”时会得到什么?
    【解决方案3】:
    while($row=sqlsrv_fetch_array($rs,SQLSRV_FETCH_NUMERIC))
    {
        $logdate=date_format($row[4],"Y-m-d H:i:s");
    }
    

    这里,$row[4] 包含日期对象。
    这肯定会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-16
      • 2014-08-06
      • 2012-08-04
      • 2019-11-13
      • 2020-02-26
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      相关资源
      最近更新 更多