Les utilisateurs sont-ils vraiment assis sur une page assez longtemps pour que ces dates soient mises à jour via javascript? La plupart d'entre eux cliquent sur quelque chose et finissent par recharger toute la page à un moment donné. Alors peut-être qu'une solution php est également une option?
Vous pouvez obtenir la solution php en utilisant le module Custom Formatters .
Si vous créez un nouveau formateur personnalisé de type php, avec le code suivant (assurez-vous qu'il s'agit d'un type d'horodatage):
$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;
Lors de la création du formateur, assurez-vous de sélectionner le type de champ «horodatage». Une fois le formateur créé, dans l'onglet Gérer l'affichage de votre type de contenu, définissez le champ pour utiliser ce formateur.
Si votre date n'est pas stockée dans un champ séparé, vous pourrez peut-être appliquer le formateur personnalisé à l'heure de modification du nœud, en installant le module Display Suite .
Si vous ne souhaitez utiliser aucun de ces modules mais souhaitez pirater du php dans votre thème ou quelque chose, vous pouvez toujours utiliser la même logique ci-dessus avec les fonctions format_interval et format_date.
J'espère que cela peut vous aider.