我需要格式化我的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.
答案 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));