Gli utenti siedono davvero su una pagina per un tempo abbastanza lungo, che queste date devono essere aggiornate tramite javascript? La maggior parte di loro farà clic su qualcosa e finirà per ricaricare l'intera pagina ad un certo punto. Quindi forse anche una soluzione php è un'opzione?
È possibile ottenere la soluzione php utilizzando il modulo Formatter personalizzati .
Se crei un nuovo formattatore personalizzato di tipo php, con il seguente codice (assicurati che sia un tipo di datestamp):
$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;
Quando si crea il formatter, assicurarsi di selezionare il tipo di campo 'datestamp'. Una volta creato il formatter, quindi nella scheda Gestisci visualizzazione del tipo di contenuto, imposta il campo per utilizzare questo formatter.
Se la data non è memorizzata come campo separato, è possibile applicare il formatter personalizzato all'ora modificata del nodo, installando il modulo Display Suite .
Se non vuoi usare nessuno di questi moduli ma vuoi hackerare alcuni php nel tuo tema o qualcosa del genere, puoi comunque usare la stessa logica sopra con le funzioni format_interval e format_date.
Spero che possa essere d'aiuto.