2017-01-13 5 views
-1

2つの日付の間に日付がある場合は
ですが、Y-m-dの代わりにY-mを使用する必要があります これを行うにはどうすればよいですか? 例:私は2016-102016-092016-12phpの時間が2つの日付Y-m

私のコードの間にあるかどうかを確認する必要があります。

$paymentDate=date('Y-m-d', strtotime($date));; 
    $contractDateBegin = date('Y-m-d', strtotime($dfrom)); 
    $contractDateEnd = date('Y-m-d', strtotime($dtom)); 
    if (($paymentDate > $contractDateBegin) && ($paymentDate < $contractDateEnd)){ 

      echo "is between"; 
      }else{ 
      echo "NO GO!"; 
      } 
+0

何がY-mフォーマットである必要がありますか?あなたは単に日付比較をしているだけです。 –

+0

3つの日付では、2016-10が2016-09と2016-12の間にあるかどうかを確認する必要があると言います。 –

+0

なぜ-1を置くべきなのか疑問に思う –

答えて

1

は、月と年を抽出し、それを比較します。

$paymentDateY = date('Y', strtotime($date)); 
$paymentDateM = date('n', strtotime($date)); 

$contractDateBeginY = date('Y', strtotime($dfrom)); 
$contractDateBeginM = date('n', strtotime($dfrom)); 

$contractDateEndY = date('Y', strtotime($dtom)); 
$contractDateEndM = date('n', strtotime($dtom)); 


if ($paymentDateY >= $contractDateBeginY && $paymentDateY <= $contractDateEndY 
&& $paymentDateM >= $contractDateBeginM && $paymentDateM <= $contractDateEndM){ 
    echo "is between"; 
} 
else 
{ 
    echo "NO GO!"; 
} 
+0

これは私が推測するものです:)ありがとう:) –

+1

うれしい私は助けることができます。ハッピーコーディング:) – Samir

1

使用YmのはOKです:Demo

$paymentDate=date('Y-m', strtotime($date));; 
$contractDateBegin = date('Y-m', strtotime($dfrom)); 
$contractDateEnd = date('Y-m', strtotime($dtom)); 
if (($paymentDate > $contractDateBegin) && ($paymentDate < $contractDateEnd)){ 

     echo "is between"; 
     }else{ 
     echo "NO GO!"; 
     } 
+0

私はそれが働いていない自分自身を試しました –

+1

それはうまく動作し、私はデモを追加し、あなた自身をチェックしてください。 –

+1

あなたは権利を持っているだけで数字でテストしました!奇妙なことに、なぜ私の変数が使えないのでしょうか? –

関連する問題