@rusgayfer

Как сделать правильную функцию отображения времени?

Нужно сделать правильное отображение даты и времени. Если пост выходит сегодня, то пишет сегодня в 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);
  }
}
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы