J'utilise ce script pour obtenir la dernière connexion d'un utilisateur
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
echo human_time_diff($last_login) . " " . __('ago');
}
Je l'appelle dans author.php avec
<p>Last login: <?php get_last_login($userdata->ID); ?></p>
J'essaye de sortir comme "le dernier login il y a X jours" mais je n'arrive pas à le faire fonctionner.
La sortie $ last_login est
2011-05-13 18:00:06
mais la sortie finale que je reçois est
last login 15108 days ago
Formatez-vous la chaîne d'entrée mysql2date()
sous la forme 'Y-m-d H:i:s'
, sous la forme spécifiée dans le Codex?
Aussi, pourquoi ne pas utiliser le même format que $date_format
?
MODIFIER:
$last_login?
human_time_diff()
est facultatif. Pourquoi ne pas simplement l'omettre? Ainsi, si vous obtenez une sortie valide à partir de $last_login
, vous devriez obtenir une sortie valide à partir de human_time_diff()
.MODIFIER:
La fonction human_time_diff()
attend un horodatageUNIXpour son premier argument. Essayez d’emballer $last_login
dans mktime()
, par exemple:
$last_login_unix = mktime( $last_login );
human_time_diff( $last_login_unix );
MODIFIER:
Peut-être souhaiter utiliser strtotime()
au lieu de mktime()
:
$last_login_unix = strtotime( $last_login );
human_time_diff( $last_login_unix );