Чи дійсно користувачі сидять на сторінці досить довго, що ці дати потрібно оновлювати через javascript? Більшість із них щось натисне і в якийсь момент перезавантажить всю сторінку. То, можливо, php рішення теж є варіантом?
Ви можете досягти рішення php, використовуючи модуль користувальницьких форматів .
Якщо ви створюєте новий спеціальний формат формату php із наступним кодом (переконайтеся, що це тип датчика дати):
$element = array();
foreach ($variables['#items'] as $delta => $item) {
$unixstamp = $item['value'];
$time_since = mktime() - $unixstamp;
if ($time_since < 86400) {
$date_str = format_interval($time_since);
}
else {
$date_str = format_date($unixstamp, 'custom', 'jS F Y');
}
$element[$delta] = array(
'#type' => 'markup',
'#markup' => $date_str,
);
}
return $element;
Створюючи формат, переконайтесь, що ви вибрали тип поля 'датастака'. Після створення форматера на вкладці керування відображенням типу вмісту встановіть поле для використання цього форматера.
Якщо у вас немає дати, яка зберігається як окреме поле, можливо, ви зможете застосувати користувальницький форматер до модифікованого часу вузла, встановивши модуль Display Suite .
Якщо ви не хочете використовувати жоден із цих модулів, але хочете зламати якийсь php у свою тему чи щось таке, ви все одно можете використовувати ту саму логіку, що описана вище, з функціями format_interval та format_date.
Сподіваюся, що це може допомогти.