当变量是数组的一部分时,需要在PHP中帮助格式化日期

时间:2018-12-27 13:15:56

标签: php mysql sql date

我需要格式化我的DATE字段,但是我无法弄清楚该变量是数组一部分的特定情况下如何处理。

我从许多来源阅读了许多不同的PHP日期格式的文章,但是没有一个能解决我正在数组的foreach输出中使用的这种格式。大多数帖子似乎将变量作为单独变量或静态日期来处理。

我尝试过:

foreach ($employees as $row) { 
    echo "$row->firstname $row->lastname, date('m/Y', strtotime('$row->date_hired')).";
}

但这是实际输出:

  

迈克·希金斯(Mike Higgins),日期(“ m / Y”,strtotime(“ 2013-01-09”))。

我有一个包含许多字段的表,其中之一是date_hired,它是一个DATE字段,其保存方式为YYYY-MM-DD。

firstname   |   lastname   |    date_hired
Mike        |   Higgins    |    2016-01-04

我查询此表并获得一个充满字段的ObjectList数组:

$employees = "SELECT firstname, lastname, date_hired from employees ";
$db->setQuery( $employees ); 
$employees = $db->loadObjectList();

然后我输出数据:

foreach ($employees as $row) { 
echo "$row->firstname $row->lastname, $row->date_hired.";
}

这当然会给我这个:Mike Higgins, 2016-01-04

但是我想要的是:Mike Higgins, Jan 4, 2016.

3 个答案:

答案 0 :(得分:3)

我想你想要

date('M d, Y', strtotime($row->date_hired))

代替:

date('m/Y', strtotime('$row->date_hired'))

表达式'周围的单引号($row->date_hired)防止将其解释为变量(它成为字符串)。

对于您的用例来说,正确的日期规格是'M d, Y',它将返回类似Jan 4, 2016的内容。

答案 1 :(得分:1)

尝试一下

foreach ($employees as $row) { 
    echo "$row->firstname $row->lastname, ".date('m/Y', strtotime($row->date_hired));
}

我想它也会起作用。

foreach ($employees as $row) { 
    echo $row->firstname." ".$row->lastname.", ".date("M j, Y", strtotime($row->date_hired));
}

答案 2 :(得分:0)

例如:

echo date("M j, Y,", strtotime("2011-01-07"));

尝试

echo date("M j, Y,", strtotime($row->date_hired));