2017-06-14 86 views
-1

我遇到了麻煩「周」在日期時間:: DIFF功能DateTime :: diff - 如何獲取週數?

這裏是我的代碼:

$date1 = new DateTime("2017-05-14"); 
$date2 = new DateTime("2017-06-14"); 
$interval = $date1->diff($date2); 
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month'); 

它的工作,如果我要得到「月」計算,但我希望把它變成一個月前拿到周:

我們有4個星期在一個月內(4.34524從谷歌單位轉換器是精確的),如果今天開始日期和時間之間的差異大於4周,它應該輸出「1個星期一th「等。

+0

您可以從'diff()'返回的DateInterval中獲得天('d'),也許只需乘以7得到幾周? –

回答

1

碼(Demo):

$date1 = new DateTime("2017-06-1"); 
$date2 = new DateTime("2017-06-15"); 
$interval = $date1->diff($date2); 
//var_export($interval); 
if($interval->m>0){ // check if >= 1 month 
    echo "{$interval->m} month",($interval->m>1?'s':''); 
}else{ 
    $weeks=floor($interval->days/7); // if not yet 1 month, calc weeks 
    echo "$weeks week",$weeks!=1?'s':''; 
} 
// output: 2 weeks 
1

計算天數,然後除以7周。因爲一週有7天

$daysInAweek = 7; 
$weeks = ($interval->days)/$daysInAweek; 
if($weeks >= 4) { 
    echo 'is a month'; 
} 

: 試試這個代碼:

$date1 = new DateTime("2017-05-14"); 
$date2 = new DateTime("2017-06-14"); 
$interval = $date1->diff($date2); 


    $week = floor($date1->diff($date2)->days/7); 
    echo $week; 
    if($week > 4) 
    { 
     echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month'); 
    } 
+0

工作!感謝代碼。我只是修改了一些東西 – Kaitenz

+0

其他人請接受 – Rahul

-1

,你可以這樣做是爲了得到周,然後使病情。