3

I am using this script to get the last time a user logged in

function get_last_login($user_id) { $last_login = get_user_meta($user_id, 'last_login', true); echo human_time_diff($last_login) . " " . __('ago'); } 

I am calling it in author.php with

<p>Last login: <?php get_last_login($userdata->ID); ?></p>

I am trying to output like "last login X days ago" but I can't get it working.

$last_login output is

2011-05-13 18:00:06

but the final output I get is

last login 15108 days ago

1 Answer 1

3

Are you formatting the mysql2date() input string as 'Y-m-d H:i:s', as specified in the Codex?

Also, why not use this same format as $date_format?

EDIT:

  1. What output do you get for $last_login?
  2. The second argument in human_time_diff() is optional. Why not just omit it? That way, if you get valid output from $last_login, you should get valid output from human_time_diff().

EDIT:

The human_time_diff() function expects a UNIX timestamp for its first argument. Try wrapping $last_login in mktime(), e.g.:

$last_login_unix = mktime( $last_login ); human_time_diff( $last_login_unix ); 

EDIT:

Might want to use strtotime() instead of mktime():

$last_login_unix = strtotime( $last_login ); human_time_diff( $last_login_unix ); 
9
  • You're right Chip. I pasted the code from an example I found. Now I'm trying to output with this code: function get_last_login($user_id) { $last_login = get_user_meta($user_id, 'last_login', true); echo human_time_diff($last_login, current_time('timestamp')) . " " . __('ago'); but is not outputting anything. Commented May 13, 2011 at 19:27
  • Can you edit your question, to add/update your code? (See answer edits, above.) Commented May 13, 2011 at 19:37
  • 1
    Edited the question. Commented May 13, 2011 at 19:49
  • 1
    See edited answer. :) Commented May 13, 2011 at 19:59
  • (And one more edit.) Commented May 13, 2011 at 20:02

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.