web-dev-qa-db-fra.com

Afficher la dernière heure de connexion

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

3
Andycap

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:

  1. Quelle sortie obtenez-vous pour $last_login?
  2. Le deuxième argument dans 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 );
3
Chip Bennett