【问题标题】:Format Date while fetching the result of query获取查询结果时格式化日期
【发布时间】:2013-05-15 11:58:58
【问题描述】:

好的,这是另一个:我想从 mysql-query 中获取特定日期格式的输出。不幸的是,我的代码不起作用。它必须与“->format()”有关,因为没有它我会得到预期的结果。我做错了什么?

$sql = "
    SELECT 
        something,
        date
    FROM 
        table
    ";

$querynav = mysql_query($sql);

while($row = mysql_fetch_assoc($querynav)){

    $answer[] = array(
        'something' => $row['something'],
        'date' => (new DateTime($row['date']))->format('d.m.Y')
        );

}

【问题讨论】:

  • 提供精确 $row['date'] 值、实际结果和预期结果。 PS:只是您提供的所有 18 行代码的旁注 17 与问题无关
  • @princecharming (zerkms): $row['date'] 值类似于“2013-05-14 22:42:00”,实际结果是“意外的 T_OBJECT_OPERATOR”-错误,预期结果在我的 18 行代码中;)
  • 你不能在一行中创建一个对象并调用它的方法。所以把表达式分成两行:1.创建DateTime对象2.调用它的format()方法
  • @zerkms:你是对的,有两条线它正在工作。仍然想知道为什么,但谢谢!
  • “还在想为什么”---这是php的语法规则

标签: php mysql date format


【解决方案1】:

可以使用Mysql的DATE_FORMAT函数。

SELECT something, DATE_FORMAT(date, '%m-%d-%Y') as date FROM table;

如果你想用 PHP 做,你可以这样做。

$answer[] = array(
        'something' => $row['something'],
        'date'      => date('d-M-Y', strtotime($row['date']))
);

如果您的值为timestamp,则不必使用strtotime() 函数。

【讨论】:

  • +1 U 错过了“作为日期”:SELECT something, DATE_FORMAT(date, '%m-%d-%Y') as date FROM table;
  • 不可能让 php 完成这项工作?
  • @user2370579 我用 PHP 代码编辑了我的答案。请看
  • @Edwin Alex:非常感谢!我会用你的方法。它比我的尝试简单得多,而且只有一行代码。太好了!
【解决方案2】:

如果您的$row['date'] 有日期,请执行以下操作:

$newdate =  date('d.m.Y', strtotime($row['date']));

您可以使用12.03.2013 格式的日期。

编辑:

while($row = mysql_fetch_assoc($querynav)){
    $newdate =  date('d.m.Y', strtotime($row['date']));

    $answer[] = array(
        'something' => $row['something'],
        'date' => $newdate 
        );

}

【讨论】:

  • 我想在 fetch_assoc 环境中做这样的事情。有什么想法吗?
  • 请看我的编辑部分..(但是,它可能需要一点修改)
【解决方案3】:
'date' => ((new DateTime($row['date']))->format('d.m.Y'))

编辑 1:

'date' => (new DateTime($row['date']))->format('d-m-Y')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2023-04-02
    • 2015-01-19
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多