Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сократить вывод даты из php скрипта?

Как сократить вывод даты из php скрипта?


     12.12.2019    php    Все вопросы » Общие вопросы по PHP    573

вопрос
Помогите, есть php скрипт:


<?php
if( ! defined( 'DATALIFEENGINE' ) ) {	die( "Hacking attempt!" );	}

function plural($n, $plurals) {
  $plural =
    ($n % 10 == 1 && $n % 100 != 11 ? 0 :
    ($n % 10 >= 2 && $n % 10 <= 4 &&
    ($n % 100 < 10 or $n % 100 >= 20) ? 1 : 2));
  return $plurals[$plural];
}

function relativeTime($dt, $precision = 2) {
  $times = array(
    365*24*60*60    =>  array("год", "года", "лет"),
    30*24*60*60     =>  array("месяц", "месяца", "месяцев"),
    7*24*60*60      =>  array("неделю", "недели", "недель"),
    24*60*60        =>  array("день", "дня", "дней"),
    60*60           =>  array("час", "часа", "часов"),
    60              =>  array("минуту", "минуты", "минут"),
  );

  $diff = time() - $dt;

  if($diff < 60)	$output='меньше минуты';
  else {
    $output = array();
    $exit = 0;

    foreach($times as $period => $name) {

      if($exit >= $precision || ($exit > 0 && $period < 60)) break;
        $result = floor($diff / $period);

        if ($result > 0) {
            if($result == 1) $output[] = plural($result, $name);
            else $output[] = $result . ' ' . plural($result, $name);

            $diff -= $result * $period;
            $exit++;
        } else if ($exit > 0) $exit++;
    }
    if ($precision < 3) $sep = " и "; else $sep = ", ";

    $output = implode($sep, $output);
  }
  return $output;
}

?>


Он выводит на сайте человеко понятные даты.
Например так:
день и 9 часов назад
неделю и день назад
3 недели и 3 дня назад
месяц и неделю назад
2 месяца и 3 недели назад

Как сократить скрипт, что нужно удалить из скрипта, чтобы стало так:
Вместо день и 9 часов назад стало день назад
Вместо неделю и день назад стало неделю назад
Вместо 3 недели и 3 дня назад стало 3 недели назад
Вместо месяц и неделю назад стало месяц назад
Вместо 2 месяца и 3 недели назад стало 2 месяца назад

Не хватает знаний чтобы исправить, как только не пытался.

Ответил: LazyDev


function relativeTime($dt, $precision = 2) {
на
function relativeTime($dt, $precision = 1) {

1 комментарий

Башмак
Юзер

Башмак - 12 декабря 2019 09:34 -

LazyDev, спасибо за помощь.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх