我修改了一个脚本以从时间戳(x 次前)获取相对日期,并且我想对其进行调整以添加另一个级别的精度,例如“昨天”或“前天”。
试过这个,它可以工作,但不是很干净,你知道如何在“最近几天”之后简化这两行吗?
function relativedate($timestamp, $limit = 1209600){
$diff = time() - $timestamp;
$time = ($diff < 1) ? 1 : $diff;
$times = array(
"year" => 31536000,
"month" => 2592000,
"week" => 604800,
"day" => 86400,
"hour" => 3600,
"minute" => 60,
"second" => 1
);
// Date limit as displayed full
if ($limit > 0 && $diff > $limit){
return "on ".date("d/m/Y - H:i:s", $timestamp);
}
// Recent days
if ($diff > $times["day"] && $diff < ($times["day"] * 2)-1) return "yesterday";
if ($diff > ($times["day"] * 2) && $diff < ($times["day"] * 3)-1) return "the day before yesterday";
// Display x time ago
foreach ($times as $unit => $seconds){
if ($time < $seconds) continue;
$amount = floor($time / $seconds);
return "since $amount $unit".(($amount > 1) ? "s" : "");
}
}
我的编辑和回复都有效,但它仍然不那么干净?试图弄清楚如何以另一种方式做到这一点。
虽然大约strtotime("yesterday")
和strtotime("-2 days")
?