0

2つの日付を減算した後、日付形式で日付を取得しようとしましたが、正しい結果が得られませんでした.結果は1970-01-07 05:00:00ですが、結果は2013-02-07 12:02です00

$start_date =strtotime('2013-02-13 12:02:00');
$end_date =strtotime('2013-02-20 12:02:00');
$total = ($start_date - $end_date);
echo date("Y-m-d H:i:s",$total);
4

3 に答える 3

2

PHP 5.3 以降では、このメソッドをクラスとDateTime::diff()一緒に使用できます。DateInterval

<?php

$start = new DateTime('2013-02-13 12:02:00');
$end   = new DateTime('2013-02-20 12:02:00');

$interval = $end->diff($start);
echo $interval->format('%Y-%M-%D %H:%I:%S');

さらに、タイムゾーン、サマータイム (うるう時間)、うるう年を適切に処理するため、PHP5.3 で想定されている方法です。

于 2013-02-27T06:52:48.500 に答える
2

2 つの日付結果を差し引いた後の結果は 7 日であり、デフォルトの日付 1970-01-01 に追加されるため、正しい結果が得られます。

于 2013-02-27T06:53:24.383 に答える
0

以下のコードを試してください

$date2 ='2013-02-13 12:02:00';
$date1 ='2013-02-20 12:02:00';

$diff = abs(strtotime($date2) - strtotime($date1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);
于 2013-02-27T06:54:03.073 に答える