2016-11-24 8 views
-1

私は2つの日付を比較しようとしていますが、何らかの理由で-60日を使用しているように見えますが、strtotimeでは機能しません。strtotimeが-60日間正しく動作していない

$date = date('Y-m-d H:i:s', strtotime("-60 days")); // gives me string) 2016-09-25 09:27:26 
$today_dt = strtotime($date); 
$expire_dt = strtotime($result['insertedInvoice']); // insertedInvoice shows 2016-11-24 08:56:48 

if($today_dt > $expire_dt){ 
dothis(); 
}else{ 
    dothat(); 
} 

問題は、$ today_dtが背後に60日のようなものですので、それは$のexpire_dtよりも大きいカントこの機能では、それはdothis();のために行く必要がありますが代わりにはdothat();のために行くということです。

+1

60日前短い時間でした請求書日付よりも私には大丈夫です。 – apokryfos

+0

あなたのコードは大丈夫です。どうした? – RJParikh

+0

あなたのコードは$ today_dt = 2016-09-25 15:12:00です。 $ expire_dt = '2016-11-24 08:56:48'となります。それからdothat();表示されます。あなたの状態を確認してください。あなたのコメントによると、($ today_dt <$ expire_dt){ – Elby

答えて

1

は、を以下

$now = date('Y-m-d H:i:s'); 

$date = date('Y-m-d H:i:s', strtotime('-60 days', strtotime($now))); 
$today_dt = strtotime($date); 
$expire_dt = strtotime($result['insertedInvoice']); // insertedInvoice shows 2016-11-24 08:56:48 

if($today_dt > $expire_dt){ 
dothis(); 
}else{ 
    dothat(); 
} 

をお試しください。**私はあなたのコードごとにこのコードを記述し、場合の条件をご確認ください。 かの条件に必要な変更が (私はあなたの最後の文で少し混乱しています)

if($today_dt < $expire_dt){ 
    dothis(); 
} else { 
    dothat(); 
} 
1

を次のように場合は、代わりのDateTimeを使用することもできます。

$date = new DateTime('-60 days'); 
echo $date->format('Y-m-d H:i:s'); 
0
$today = date('Y-m-d H:i:s'); //Today 
echo $date = date('Y-m-d H:i:s', strtotime($today . ' - 60 days')); 

Hope this will helps you. 
関連する問題