2016-12-23 6 views
1

私はこのphpコードを完成させようとしています。
登録から今日まで4か月ごとに知る必要があります。登録日の4ヶ月ごとの今日までの取得方法

コード:

$date = '2016-12-23'; 
$dateRegistered = '2016-01-08'; 

$d1b = strtotime($date); 
$d2b = strtotime($dateRegistered); 
$min_dateb = min($d1b, $d2b); 
$max_dateb = max($d1b, $d2b); 
//echo $min_dateb.' - '.$max_dateb; 
$Tb = 0; 
//$getwwy=null; 
while (($min_dateb = strtotime("+1 MONTH", $min_dateb)) <= $max_dateb) { 
    $Tb++; 

} 
//echo $Tb; 

私は現在、1〜10の数字を返します。

4,8,12 ,. ...とそう

に、私はあなたがこのようなものを使用することができ、それは試合

$datem = date("m", strtotime($date)); 
if($datem==$Tb){ 
//echo '<td>echo some result</td>'; 
} 
+0

4,8,12にする必要がありますか? 4ヶ月ごとに私に5と9を意味します(そして、来年から1)。 – Blaatpraat

+0

@Blaatpraat私はそれについて今混乱しています!しかし、私はコードで1つの番号を編集する必要があります:) –

答えて

1

を見たい:あなただけの数ヶ月の数が必要な場合は、あなたがarray_mapを使用することができます

$dateRegistered = new DateTime('2016-01-08'); 
$now = new DateTime(); 
$quarters = array(); 

while ($dateRegistered->format('n') <= $now->format('n') && $dateRegistered < $now) { 

    if ($dateRegistered->format('n') % 4 === 0) { 
     $quarters[] = clone $dateRegistered; 
    } 

    $dateRegistered->modify('+1 month'); 
} 

var_dump($quarters); 

をまたはwhileループの四半期配列に月数だけを追加するだけでもかまいません。

$quarters = array_map(function($date) { 
    return $date->format('n'); 
}, $quarters); 

var_dump($quarters); 
+0

はいこのことはありがとう:)しかし、ちょうどもう一つの質問: if文? –

+0

whileループで直接使用したい場合は、その配列はもう必要ありません。$ dateRegistered変数を使用して、あなたがしたいことをします。 –

+0

whileループで使用すると、新しい​​*が生成されますループ:( –

関連する問題