【问题标题】:Display datetime with php [closed]用php显示日期时间[关闭]
【发布时间】:2013-06-11 10:36:07
【问题描述】:

我在 sql server 中有一个数据类型为 datetime 的列,我想只用 php 回显日期。

目前我正在使用这个函数来输出所有内容:

<?php
include 'DB_Connect.php';
$query = ("select * from information");
$stmt = sqlsrv_query( $conn, $query);

echo $row['time'];
?>

有人知道吗?

【问题讨论】:

  • 这个输出是什么?
  • 你能说出数据库中存储的时间值吗?
  • 2013-06-12 12:20:15.047
  • ummm...$row 变量从何而来?打开通知(错误报告),因为您粘贴的代码正在抛出错误。除非那不是您的实际代码,在这种情况下请发布。

标签: php sql-server datetime


【解决方案1】:

没问题,您没有从 sqlsrv_query 结果中获取值。这就是为什么没有获得任何价值。

在查询之后使用 sqlsrv_fetch_array。

 <?php
 include 'DB_Connect.php';
 $query = "select * from information";
 $stmt = sqlsrv_query( $conn, $query);
 $row = sqlsrv_fetch_array($stmt);
echo $row['time'];
 echo date("Y-m-d", strtotime($row['time']));
?>

它应该可以工作。

【讨论】:

  • 回声 $row['time'];什么都不回并回显 date("Y-m-d", strtotime($row['time']));回馈 1970-01-01
  • 立即尝试。我没有注意到您在 $query 中使用的括号。那不应该在那里。
  • 回答我是否有效。
  • 仍然给我 1970-01-01.. 那个日期是什么意思?
  • 这意味着它也没有获取任何值。在 strtotime() 函数中使用的任何空白值都会给出 1970-01-01。请检查表的值或 $row = sqlsrv_fetch_array($stmt); 之后的 print_r($row); .
【解决方案2】:

datestrtotime 一起使用

echo date("Y-m-d", strtotime($row['time'])); // in Y-m-d format

编辑

您也可以使用此代码

$date = new DateTime('2013-06-12 12:20:15.047');
echo $date->format('Y-m-d') . "\n";

输出

2013-06-12

Codepad

【讨论】:

  • 我得到这个日期:01-01-1970
  • 检查数据库中日期的值
  • 应该可以,做一个 $row['time'] 的 var_dump 并将答案放在这里。
  • object(DateTime)#1 (3) { ["date"]=> string(19) "2013-06-13 09:48:19" ["timezone_type"]=> int( 3) ["timezone"]=> string(11) "亚洲/科威特" }
  • @Allan 你必须使用$row['date']
【解决方案3】:

在基于字符串的解决方案领域,这非常简单。

万年安全解决方案:

$date = strtok($row['time'], ' ');

一万年不安全的解决方案:

$date = substr($row['time'], 0, 10);

【讨论】:

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