Я думаю, я помню, что может быть встроенная функция, которая делает это в D7, но не нашла ее. Таким образом, вы можете просто использовать эту функцию в шаблоне:
function ago($timestamp){
$difference = time() - $timestamp;
$periods = array("second", "minute", "hour", "day", "week", "month", "years", "decade");
$lengths = array("60","60","24","7","4.35","12","10");
for($j = 0; $difference >= $lengths[$j]; $j++)
$difference /= $lengths[$j];
$difference = round($difference);
if($difference != 1) $periods[$j].= "s";
$text = "$difference $periods[$j] ago";
return $text;
}
Затем, когда вам нужно напечатать дату типа «время с», например время с момента входа пользователя в систему:
global $user;
echo "Last login: ".ago($user->login);
Надеюсь, это поможет, удачи.
PS. Подумайте о том, чтобы публиковать предстоящие вопросы на drupal.stackexchange.com, и ваша публикация будет предназначена для многих удивительных разработчиков Drupal. Удачи, счастливого кодирования.
Обновление - В Drupal есть встроенная функция для форматирования интервалов дат, она называется format_interval .
Пример использования:
// Date since forum post was created
format_interval(REQUEST_TIME - $variables['topic']->created)
Намного проще, как это.