簡體   English   中英

計算兩個日期之間的日期差

[英]Calculate date difference between two dates

我試圖找到兩個日期之間的差異。 它簡單不顯示任何內容,空白頁面顯示日期差異。

下面是我正在使用的代碼。

<?

$sql = $Db1->query("SELECT * FROM table LIMIT 5");

while($row = $Db1->fetch_array($sql)) {

$datetime1 = date("m-d-Y",mktime(0,0,$row['rec'],1,1,1970));
$datetime2 = date("m-d-Y",mktime(0,0,$row['send'],1,1,1970));
echo "$datetime1";
echo "$datetime2";
$diff=date_diff($datetime1,$datetime2);
echo $diff->format("%R%a days");
echo "$diff";


}
?>

我創建了一個函數,您可以根據需要更改它。 如果要查找當前日期與給定日期之間的差異,請將日期兩個留空。

function dayspassed($dategiven, $dategiven2){
if(empty($dategiven2)){
    $currentdate = date('Y-m-d');  
}else{
    $currentdate = $dategiven2;  
}
  $currentdate = strtotime($currentdate);
  $dategiven = explode(" ", $dategiven);
  $dategiven = $dategiven['0'];
  $yourdate = strtotime($dategiven);
  $datediff = $yourdate - $currentdate;
  return $difference = floor($datediff/(60*60*24));

}

使用這個功能

$date1 = $row['rec'];
$date2 = $row['send'];
$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);

我有以下功能:

function get_date_difference_in_days($timestamp1, $timestamp2) {
    $inputSeconds = abs($timestamp1 - $timestamp2);
    $days = floor($inputSeconds / (24 * 60 * 60));
    return $days;
  }

代碼的問題在於date_diff可與datetime對象一起使用,並且您將參數作為字符串而不是作為datetime對象傳遞。

查看文檔可以清楚地看到date_diff是DateTime :: diff()的別名函數。

因此解決方案將是:

$row = array("rec" => "2014-12-24", "send" => "2014-12-20");

$datetime1 = DateTime::createFromFormat("Y-m-d", $row["rec"]);
$datetime2 = DateTime::createFromFormat("Y-m-d", $row["send"]);

echo $datetime1->format("Y-m-d");
echo $datetime2->format("Y-m-d");

$diff = $datetime1->diff($datetime2);

echo $diff->format("%r%a");

暫無
暫無

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

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