0

ユーザーが最後にシステムにログインしてから何日経過したかを確認しようとしています。彼が最後にmysqlテーブルの列(日時)から入力した時刻を取得します。だから私は書いた:

$user_last_visit = $user_info['last_updated']; // 2013-08-08 00:00:00

$user_last_visit_str = strtotime($user_last_visit); // 1375912800
$today = strtotime(date('j-m-y')); // 1250114400

$diff = $today - $user_last_visit_str;
  • $user_info['last_updated']2013-08-08 00:00:00 の値で最後に訪れたのはどこですか。
  • strtotime の後$user_last_visit_str、1375912800 に等しくなります
  • $today9-08-13 の値を持ち、strtotime の後に 1250114400 を取得します。

(1 日 =ミリ秒)で正の値を取得する代わりに、何らかの理由$diff = $today - $user_last_visit_str;で負の値が得られます。24*60*60*100024*60*60*1000

何か案は?

4

5 に答える 5

2

diffを使用した簡単なソリューション:

echo date_create()->diff(date_create($user_last_visit))->days;

他のすべてが失敗した場合は、次のようにします。

$diff = floor((time() - $user_last_visit_str) / (60 * 60 * 24));
于 2013-08-09T06:03:21.027 に答える
1

以下のコードを使用して日付の差分を取得できます。ここでは、2013 年 7 月 15 日の静的な最終日付を指定し、現在の日付とは異なります。

    $last_date = date('y-m-d', strtotime('15th july 2013'));//here give your date as i mentioned below
    //$last_date = date('y-m-d', strtotime($your_old_date_val));
$current_date = date('y-m-d');//

echo $date_diff = strtotime($current_date) -  strtotime($last_date) ;
echo $val = 60*60*24;
$days_diff = $date_diff / $val;

echo $days_diff;
于 2013-08-09T06:03:01.687 に答える
1

これを試して:

$user_last_visit = $user_info['last_updated']; // considering the value of user last visit is 2013-08-08 00:00:00 which indicates year, month, day, hour, minute, second respectiveliy
$user_last_visit_str = strtotime($user_last_visit);
$today = time();

$diff = $today - $user_last_visit_str;
$no_of_days = ($diff / (60*60*24));
于 2013-08-09T06:03:35.200 に答える
0

次のように、$today 割り当てを逆にしてみてください。

$today = strtotime(date('y-m-j'));

それは私のために働いた。

于 2013-08-09T05:59:46.140 に答える