Нужно сделать правильное отображение даты и времени. Если пост выходит сегодня, то пишет сегодня в H:i, если завтра, то Завтра в H:i. В остальных случаях, например, 25 ноября в H:i (если другой год, то еще год отобразить 25 ноября 2021 г. в H:i).
А если дата и время уже прошли, то писать Опубликовано.
function dateDiffPost($d, $now = null)
{
if ($now === null) $now = date("Y-m-d H:i:s");
$snow = strtotime($now);
$sd = strtotime($d);
$seconds = $snow - $sd;
$aseconds = abs($seconds);
if ($aseconds < 60) {
return ($seconds >= 0 ? "только что" : "через минуту");
} elseif (($days = abs(strtotime(date("Y-m-d", $sd)) - strtotime(date("Y-m-d", $snow))) / 3600 / 24 >> 0) < 2) {
if ($seconds < 0) {
switch ($days) {
case 0:
return "Сегодня в " . date("H:i", $sd);
break;
case 1:
return "<p data-type-time=\"publish\">Завтра в " . date("H:i", $sd). "</p>";
break;
}
} else {
return "<p data-type-time=\"publish\">Опубликован</p>";
}
} elseif (date("Y", $sd) != date("Y", $snow)) {
return rusDate("d M Y", $sd);
} else {
if($seconds > 86400) {
return "<p data-type-time=\"publish\">Опубликован</p>";
}
return rusDate("d M в H:i", $sd);
}
}