日期功能问题
输出:2011年12月17日星期日00:00
问题 小时和分钟始终显示00:00,有时候年份也不正确
输入 date('Y-m-d H:i:s',time());
功能
public function perfect_date_format($date) {
$dated = str_replace(array(" ", ":"), "-", $date);
list($year, $month, $day, $hour, $minute) = explode("-", $date);
$niceday = @date("H:ia \o\\n\ l, F jS, Y", mktime($hour, $minute, 0, $month, $day, $year));
return $niceday;
}
答案 0 :(得分:3)
你有一个错字。 explode()
的第二个参数应为$dated
,而不是$date
。如果这样做,则正确显示时间。
<?php
function perfect_date_format($date) {
$dated = str_replace(array(" ", ":"), "-", $date);
list($year, $month, $day, $hour, $minute) = explode("-", $dated);
$niceday = @date("H:ia \o\\n\ l, F jS, Y", mktime($hour, $minute, 0, $month, $day, $year));
return $niceday;
}
echo perfect_date_format('2011-12-17 03:45:00') . "\n";
?>
输出:
03:45am on Saturday, December 17th, 2011
顺便说一句:在上面的代码中移除error suppressor operator(即@
)是安全的。它只是简单地抑制了由上面提到的错误引起的错误或警告。现在修复了错误,@
没有做任何事情。
答案 1 :(得分:1)
在不知道你传递给perfect_date_format
的内容的情况下,很难知道如何更正你的代码,但我会猜测并假设strtotime
了解如何解析你的{{} 1}}:
$date
如果这不起作用,请提供您传递的数据格式为public function perfect_date_format($date) {
$time = strtotime($date);
return date("H:ia \o\\n\ l, F jS, Y", $time);
}
。