A
A
AlikDex2015-08-31 10:32:10
Toaster
AlikDex, 2015-08-31 10:32:10

How is the output of the time interval from the date the post was created on the toaster implemented?

Such is the question. On one site I did something like this:

<?php
$post_approved_date = '2015-08-23 02:46:19'; // дата создания поста, условно.

$tm = [

  86400 		=> "<font color=\"#75FF00\">сутки назад</font>",
  172800 		=> "<font color=\"#61B14D\">2 дня назад</font>",
  259200 		=> "<font color=\"#FFA300\">более 3-х дней назад</font>",
  432000 		=> "<font color=\"#FF7800\">больше 5-ти дней назад</font>",
  604800 		=> "<font color=\"#FF0000\">более чем неделю назад</font>",
  1209600 	=> "<b><font color=\"#FF0000\">более 2-х недель назад</font></b>",
  1814400 	=> "<b><font color=\"#FF0000\">более 3-х недель назад</font></b>",
  2419200 	=> "<b><font color=\"#FF0000\">более месяца назад</font></b>",
  4838400 	=> "<b><font color=\"#FF0000\">более 2-х месяцев назад</font></b>",
  7257600 	=> "<b><font color=\"#FF0000\">более 3-х месяцев назад</font></b>",
  15778463 	=> "<b><font color=\"#FF0000\">более полугода назад</font></b>",
  31556926 	=> "<b><font color=\"#FF0000\">более полугода назад</font></b>",
];

$timediff = time() - strtotime($post_approved_date); // вычислим промежуток времени от даты создания поста.

array_walk($tm, "getElapsedTime", $timediff);		// удалим лишние элементы и вытащим последний из них.
$textElapsedTime = array_pop(array_filter($tm));	// Он и будет подходящим описанием.
  
print_r($textElapsedTime); // вывод того, что получилось.

/**
 * Удаляет временные метки, которые больше промежутка времени от даты создания поста.
 * @param: &$val (string) значение элементы массива временных меток. Текстовое пояснение прошедшего времени.
 * @param: $key (int) ключ элемента массива временных меток. Временная метка.
 * @param: $timediff (int) промежуток времени в секундах с момента создания поста.
 */
function getElapsedTime(&$val, $key, $timediff)
{
  if ( $key > $timediff )
    $val = null;
}

?>

But the couple does not seem to be a fountain.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
Сергей Савостин, 2015-08-31
@savostin

Лень разбираться как на тостере сделано.
Берите momentjs.com/docs/#/durations/humanize
Добавлено: почему JS, а не PHP? Потому, что время течет, имхо это должно быть на клиенте.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question