2017-06-14 10 views
-1

私はのDateTime :: 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週間を超える場合、私たちは1ヶ月に4週間(4.34524正確にGoogleユニットコンバータから)を持っていますそれは "1月th "など。

+0

DateIntervalから 'diff()'が返す日数( '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

あなたは週を取得し、状態を作るためにこれを行うことができます。

関連する問題