1

2 つの Datetime オブジェクトがあり、間隔を取得するために diff を使用しました。次に、この間隔を別の日付に追加して、将来の日付を取得したいと考えています。これが私のコードです:

 $start = new DateTime($start_date);
 $stop = new DateTime($end_date);
 $interval = $start->diff($stop);
 $now = new DateTime($update_date);
 $now->add($interval);
 return $now->format('Y-m-d H:i:s');

数値が加算されていることを確認するために、次のことを行いました。

 echo "interval = " . $interval->format("%d days, %h hours and %i minutes");
 echo "<br/> date  = ". $update_date;
 echo "<br/> result  = ". $now->format('Y-m-d H:i:s');

そして私はこれを得ました:

 interval = 0 days, 0 hours and 13 minutes
 date = 2016-01-14 21:03:41
 result = 2016-01-14 20:50:22

では、日付に 13 分足すと、結果が 13 分少なくなるのはなぜですか?

4

2 に答える 2

0

次のコードは私のために働いています:

$start_date = '2016-01-14 12:12:00';
$end_date = '2016-01-14 12:25:00';
$update_time = '2016-01-14 16:00:00';

$start = new DateTime($start_date);
$end = new DateTime($end_date);
$interval = $start->diff($end);
$now = new DateTime($update_time);
$now->add($interval);
echo $now->format('Y-m-d H:i:s'); //2016-01-14 16:13:00

ここで見つけることができる実際の例: https://3v4l.org/P3rKU

于 2016-01-14T21:37:31.117 に答える
0
$start = new DateTime('2016-01-14 21:03:41');
$end = new DateTime('2016-01-14 21:30:05');
$interval = date_diff($start,$end);
echo $interval->format("%d days, %h hours and %i minutes")."<br/>";   
$now = new DateTime('2016-01-14 21:30:05'); 
$now->add($interval);
echo "Total  : ", $now->format('Y-m-d H:i:s');

これを試して。

于 2016-01-14T22:40:48.560 に答える