2016-10-13 7 views
0

PHPのフォーマットY-m-d H:i:sの2つのタイムスタンプの差を取得したいと考えています。 使用されるコードは、ここPHPのタイムスタンプの差(単位:分)

$currentDate = date('Y-m-d H:i:s'); 
$userLastActivity = date($date); 
$timeLapse = (($currentDate - $userLastActivity)/60); 

ある、$dateがデータベースから取得されます。 $timeLapseの値は出力0です。助けてください。

+2

可能な複製を(http://stackoverflow.com/questions/9732553/time -difference-php-timestamps-in-hours) –

+0

あなたは日付があるタイムスタンプはありません。 – ArtisticPhoenix

答えて

2

は、UNIXタイムスタンプを使用してみてください。実際には、1970年1月1日からの時間を秒単位で測定し、PHPオブジェクトよりも使いやすく分かりやすくなっています。

$currentTimestamp = new DateTime()->getTimestamp(); 
$userLastActivity = date($date)->getTimestamp(); 
$timeLapse = (($currentDate - $userLastActivity)/60); 

あなたは、変換を必要とせず、直接数値として$の日付を使用することができ、その場合には、時間があまりにもサーバー上のタイムスタンプとして保存されている必要があります。それは普遍的だからとも、あなたはUnixタイムスタンプにテキスト日時を解析し、60によって$currentDateと除算から$userLastActivityを減算する変換

+0

これはうまくいった!!ありがとう、トン。 – prashant0205

-2

私は60で日付を分割するとうまくいくとは思わないので、これらの2行を変更してください。

$currentDate = time(); 
$userLastActivity = strtotime($date); 

あなたはタイムスタンプではなく日付(文字列)を持ってそのように

+0

2番目の例は非常に間違っています。 $ interval-> iは60分のうち残りの分だけを返します。差分関数を使用する場合は、日、時、分、秒を分単位で計算する必要があります。 –

+0

@MichaelHanon - 私はそれを修正する気がしません、とにかくそれはオプションです。それが私の頭の中でコーディングのために得られるものです。私はこれを公開した感覚が変わったと思います。つまり、 'date($ date) - > getTimestamp()'オブジェクト以外のメソッドの構文エラーコール – ArtisticPhoenix

+0

母親は大丈夫です。 –

0

使用strtotimeのために何の心配もせずに周りのJavaScriptや他の言語にそれを渡すことができます。

このことができます参照してください -

詳細については
<?php 
$currentDate = strtotime(date('Y-m-d H:i:s')); 
$date = "2016-10-11 02:40:50"; 
$userLastActivity = strtotime($date); 
echo round(abs($currentDate - $userLastActivity)/60). " minutes"; 
?> 

:[時間でPHPのタイムスタンプ間の時間差]のstrtotime

関連する問題