PHP date("H:i (d.m.Y)",$timestamp)
函数表示当天午夜的00:00。但我需要它代表它作为前一天的24:00。是否可以在不编写全新的date()解析器函数的情况下完成?
编辑:为什么我需要这种“怪异”格式?因为我的客户要求它。在我的国家(CZ),有时会在提到午夜的时候使用24:00。
edit2:我当前的'脏'解决方案是:(不适用于所有可能的格式字符串)
function date_24midnight($format,$ts)
{
if(date("Hi",$ts)=="0000")
return preg_replace('/23:59/',"24:00",date($format,$ts-1));
else
return date($format,$ts);
}
答案 0 :(得分:3)
function date_24midnight($format,$ts)
{
if(date("Hi",$ts)=="0000") {
$replace = array(
"H" => "24",
"G" => "24",
"i" => "00",
);
return date(
str_replace(
array_keys($replace),
$replace,
$format
),
$ts-60 // take a full minute off, not just 1 second
);
} else {
return date($format,$ts);
}
}
此功能基于您的功能,但适用于所有格式(我测试过)
所以H:i:s
例如
对于像"\H\i Y-m-d"