【问题标题】:Converting from SQL datetime to PHP DateTime, using从 SQL 日期时间转换为 PHP 日期时间,使用
【发布时间】:2014-04-11 11:48:48
【问题描述】:

数据库中的变量time_of_last_update 的类型为datetime,我想要做的只是将它打印在表中(如下),但理想情况下我想知道如何转换它以供将来参考/将其转换为 PHP 中的 DateTime 类型,然后使用其上的方法,例如 ->format 等。做:

$time_date = $row['time_of_last_update'];
$time_date->format('Y-m-d H:i:s');

对来自 C# 的我来说似乎很明显,但我得到“调用非对象上的成员函数 format()”,并且强制转换似乎也对我没有帮助。这看起来很简单/很常见,但我找不到任何例子。

$describeQuery = 'SELECT username, firstname, surname, location, time_of_last_update      FROM location';
$query = sqlsrv_query($link, $describeQuery);

echo '<table>';
echo '<tr><th>Username</th><th>Firstname</th><th>Surname</th><th>Location</th><th>Time of last Update</th></tr>';

while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{
// WANT TO CONVERT time_of_last_update (SQL datetime) to a PHP DateTime variable??

echo '<tr>';
echo '<td>' . $row['username'] . '</td>';
echo '<td>' . $row['firstname'] . '</td>';
echo '<td>' . $row['surname'] . '</td>';
echo '<td>' . $row['location'] . '</td>';
echo '<td>' . $row['time_of_last_update'] . '</td>';// RETURNING ERROR "Object of class DateTime could not be converted to string"
}

echo '</table>';
sqlsrv_free_stmt($query);
sqlsrv_close($link);

谢谢

【问题讨论】:

  • var_dump($row['time_of_last_update']); 输出什么?

标签: php sql datetime casting


【解决方案1】:

date and time related extensions

$dt = date_create($row['time_of_last_update']);

echo date_format($dt, 'Y-m-d H:i:s');

如果您需要 DateTime 的简单 API 扩展,还应该查看 Carbon

【讨论】:

    【解决方案2】:

    1) 如果您只想以正确的格式显示日期,请使用 DATE_FORMAT 在 sql 中对其进行格式化:

    $describeQuery = 'SELECT username, firstname, surname, location, DATE_FORMAT(time_of_last_update, '%Y-%m-%d %H:%i:%s')      FROM location';
    

    2) 如果你希望它作为 php 中的日期对象,你需要先创建它,然后再调用方法格式:

    // creating new date object
    $date_time = new DateTime($row['time_of_last_update']);
    
    //now you can use format on that object:
    $formated_date = $date_time->format('d/m/y H:i');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多