簡體   English   中英

如何找到兩個日期之間的差異

[英]How to find difference between two dates

$start = "2015-01-01 10:00:00";

$end = "2015-05-05 12:06:06";


$x = strtotime($start);

$y = strtotime($end);

$z = abs($y - $x);

$days = floor($z / (60 * 60 * 24));
$years = floor($z / (365 * 60 * 60 * 24));

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

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

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

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

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

輸出為:

4 month 4 days 1 hour 6 minute 6 seconds

預期輸出為:

4 month 4 days 2 hour 6 minute 6 seconds

DateTime是在PHP中處理日期的好方法:

$start = "2015-01-01 10:00:00";
$end = "2015-05-05 12:06:06";

$d1 = new DateTime($start);
$d2 = new DateTime($end);

$iv = $d2->diff($d1);

echo $iv->format('%m month, %d days, %h hours, %i minutes, %s seconds');

您的代碼沒什么不對,您可能需要包括默認時區,例如對於我在非洲的我來說,因此我總是使用下面的代碼來設置我的時區。

date_default_timezone_set('Africa/Harare');

您只需要確定您所在的區域,然后將其分配給date_default_timezone_set();方法date_default_timezone_set();

$start_date = new DateTime('2007-09-01 04:10:58');
$since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00'));
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';

使用以下代碼

$start = date_create('2015-01-01 10:00:00');
$end = date_create('2015-05-05 12:06:06');
$diffObj = date_diff($start, $end);
//accesing days
$days = $diffObj->d;
//accesing months
$months = $diffObj->m;
//accesing years
$years = $diffObj->y;
//accesing hours
$hours=$diffObj->h;
//accesing minutes
$minutes=$diffObj->i;
//accesing seconds
$seconds=$diffObj->s;
echo '<center>';
echo '' . $days . ' day(s), ' . $months . ' month(s), ' . $years . 'year(s), '.$hours.' hour(s),'.$minutes.' minute(s), '.$seconds.' second(s) </b>';
echo '</center>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM