2016-04-29 7 views
0

私が持っているcalculat Eこの形式では、2つの日付の差に:は計算違い

Fri, 29 Apr 2016 12:27:29 +0200

しかし、私は私が行うことができますdate_diff()function..howを使用することはできませんそれ?このコードでは

<?php 
    $now = date(DATE_RFC2822); 
    $now = date_create($now); 
    $feed_date = date_create($feeds[$y-1]); //value of $feeds[$y-1] = Fri, 29 Apr 2016 12:27:29 +0200 
    $feed_date = date_diff($now,$feed_date) ?> 

私はこれを取得:

Catchable fatal error: Object of class DateInterval could not be converted to string in blablabla

[EDIT]それは私が常に0分

$now = date(DATE_RFC2822); 
    $now = date_create($now); 
    $feed_date = date_create($feeds[$y-1]); 
    $data_post = date_diff($now,$feed_date); 
    ?> 
     <?php echo $data_post->format('%R%a minutes'); ?> 
+3

を[PHPを使用して2つの日付の違いを計算する方法]の可能な複製?(http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php) –

+1

*重複していない他の質問は私の問題を解決することができないので* - はい、あなたの日付をDateTimeオブジェクトにmumbし、それらを比較し、出力をフォーマットすることができます。 – CD001

+0

'DateInterval'の' format() 'メソッドを使って、印刷前にフォーマットします。 'echo $ feed_date-> format( '%R%a days');'。 http://php.net/manual/en/dateinterval.format.php –

答えて

1
を取得し、これを使用work..ifません。

date_diff()関数はDateTimeオブジェクトを受け入れ、DateIntervalオブジェクトを返します。

$datetime1 = date_create('Fri, 29 Apr 2016 12:27:29 +0200'); 
$datetime2 = date_create('Sat, 30 Apr 2016 12:27:29 +0200'); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%R%a days'); 

これは手続き的なスタイルであるあなたが好むならば、あなたは、オブジェクト指向のスタイルを使用できることに注意してください:

$datetime1 = new DateTime('Fri, 29 Apr 2016 12:27:29 +0200'); 
$datetime2 = new DateTime('Sat, 30 Apr 2016 12:27:29 +0200'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 
+0

を試してみてください。私よりも良い答えです。 Upvoted –

+0

キャッチ可能な致命的なエラー:クラスDateIntervalのオブジェクトを文字列に変換できません –

+0

'$ interval'をimmediatlyに出力しないでください。' DateInterval'の 'format()'メソッドを使って印刷前にフォーマットしてください。 http://php.net/manual/en/dateinterval.format.php –

0

あなただけdate_diffを使用する前に、日付を解析できます。

$date1 = date_create("Fri, 22 Apr 2016 12:27:29 +0200"); 
$date2 = date_create("Fri, 29 Apr 2016 12:27:29 +0200"); 
$diff = date_diff($date1, $date2); 
+0

キャッチ可能な致命的なエラー:DateIntervalクラスのオブジェクトを –

+0

の文字列に変換できませんでした。 –

+0

'$ diff'を直接印刷しないでください。印刷前に' DateInterval'の 'format()'メソッドを使ってフォーマットしてください。 'echo $ diff-> format( '%R%a days');'。 http://php.net/manual/en/dateinterval.format.php –

関連する問題