2017-07-31 14 views
1

私はPHPで2回の間に分を探しています。スタックに関する他の質問から私が見つけた答えに続き、PHPマニュアルを調べました。私の状況では、データベースに保存されているDATETIMEを取得しています。私の問題はフォーマット上の問題だと思う。私がまとめたものを投稿します。phpとの時間差を見つけた後のフォーマットエラー?

$order_start = $obj->order_start; //getting detetime from database query 
$order_start = DateTime::createFromFormat('Y-m-d h:i:s', $order_start); 
$order_start= $order_start->format('Y-m-d h:i:s'); //format detetime 

$now_date = date('Y-m-d h:i:s'); //get now time 


$diff=date_diff($order_time,$now_date); //get difference 

$diff=$diff->format("%i minutes"); //format difference 

ここでは何が起こっているのですか。この行を使用するとページが機能しなくなる$diff=$diff->format("%i minutes");

$order_start = DateTime::createFromFormat('Y-m-d h:i:s', $order_start);を使用してデータベースから日付をフォーマットしなければならないという印象を受けました。

$ order_startエコーの2017-07-31 01:44:25

$ now_dateエコーの2017-07-31 04:43:59同じ形式のように見えるがないかもしれません

今、私はこれらの時間の違いを取得し、分を表示するために結果をフォーマットしようとしています。

事前にアドバイスをいただきありがとうございます。より良い記事がある場合は、私に知らせてください。

私は、私も試してみて、書式設定を把握するために、これを読んで Echo Difference in Two Times

を試してみました。 http://php.net/manual/en/dateinterval.format.php

My Order page

+0

' date_diff'機能のようなあなたのケースでの使用には、この

echo date('H:i:s',(strtotime($now_date)-strtotime($order_start))); 

のように使用し、 '$のnow_date'は、文字列でも知らない何ですか'$ order_time'には? –

+0

$ order_timeは、この形式のdatetimeとして格納されていたデータベースから出てきます。 0000-00-00 00:00:00 –

答えて

0

あなたはそれに応じてそれをフォーマットし、timestampにあなたの日付を変換し、その差を得ることができます。 DateTime` `の対象としてではなく、あなたのコード内でボットパラメータを受け入れます。この

echo date('h:i:s',(strtotime("2017-07-31 01:44:25")-strtotime("2017-07-31 04:43:59"))); 
+0

ありがとう、これはトリックでした。何時かの理由でstrtotimeが必要ではないと私は思った。 –

+0

すぐに受け入れることができる4分 –

+0

安全な側にいる。私は実際にあなたの答えを調整する必要があった '<?エコー日付( 'H:i:s'、($ order_start-strtotime($ now_date))); ?> 'しかし、strtotimeは正しい問題でした。 –

関連する問題