User last login and user last visit problem

When you are using human_time_diff for convert time to human readable format. your last_visit meta empty that is why it is return 50 years. so before convert human_time_diff you have to check value is not empty. use below code to display last_login, last_visit.

$users = get_users();
 foreach( $users as $user ) {

   $udata = get_userdata( $user->ID );             
   $user_registered = $udata->user_registered;             
   $user_last_login = get_user_meta( $user->ID , 'last_login', true );
   $user_last_seen = get_user_meta( $user->ID , 'last_visit', true );

   $user_last_login = !empty($user_last_login) ? human_time_diff($user_last_login) : '-';
   $user_last_seen = !empty($user_last_seen) ? human_time_diff($user_last_seen) : '-';

   printf( '%s  OD : %20s : Last Login : %20s : Last seen : %20s <br> ', 
          $udata->data->display_name, 
          date( "M Y", strtotime( $user_registered )), 
           $user_last_login ,
           $user_last_seen                       
         );
 }

error code: 523