2016-06-24 14 views
0

コーディングの一部に基づいてRounin - 私はこれを試してみることにしました。今日の日付は2017-03-01と2017-04の間です-30、rego形式を表示します。これらの日付の外にある場合は、「フォームが利用できません」と表示されます。イベント間で動的に日付を変更する

日付は2つの設定された日付ですがわかりやすいですが、私は手動で編集する必要がないように動的にYを変更します。毎年。 (非常に扱いにくいようですが? - しかし作品)私が持っているもの

がある日付で動作するように

<?php 

     $today = date('Y-m-d'); 


     $Current_Year = date('y'); 
     $Current_Month = date('n'); 
     $Current_Day = date('j'); 
     $Next_Year = ($Current_Year + 1); 

     if ($Current_Month < 5) { 
     $Begin_Rego_Year = $Current_Year; 
     } 

     if ($Current_Month > 3) { 
     $Begin_Rego_Year = $Next_Year; 
     } 

     # Checks if date is March 31st 
     if (($Current_Month == 3) && ($Current_Day == 1)) { 
     $Begin_Rego_Year = $Current_Year; 
     } 

     $Begin_Rego_Date = $Begin_Rego_Year.'-03-01'; 


     ///////////////// 

     if ($Current_Month < 5) { 
     $End_Rego_Year = $Current_Year; 
     } 

     if ($Current_Month > 3) { 
     $End_Rego_Year = $Next_Year; 
     } 

     # Checks if date is March 31st 
     if (($Current_Month == 4) && ($Current_Day == 30)) { 
     $End_Rego_Year = $Current_Year; 
     } 

     $End_Rego_Date = $End_Rego_Year.'-04-30'; 

     if (($today >= $Begin_Rego_Date) && ($today <= $End_Rego_Date)) 
{ 
    echo "Display Rego Form"; //if todays date was between 01 Mar - 30 Apr 17 
} 

else { 

    echo "Rego Form Offline until 01 Mar 18"; 
} 

?> 

答えて

0

Easist方法私はそれがstrtotime();

strtotime
@usage例の機能だと思います
if (
    strtotime('today') >= strtotime('first day of this month') 
    && strtotime('today') <= strtotime('last day of this month') 
) { 
    echo 'display rego form'; 
} 

php.net
Info about this function
Info about date formats for strtotime

+0

はこれに取り組んで始め、ちょうどダイナミックYビットに – Gazza

+0

日付形式をうまくする必要があり、このような「最後の翌月の日」または'10など、動的なのに役立ちます「Semptember 2016」や「2016年4月末日」などはありませんか? – ixe

0

strtotime( 'last day of april') - 正常に動作しない可能性があるかどうかわかりません。

になってしまった

(今のところ)

$open_day = date('01-03-Y'); 
$close_day = date('30-04-Y'); 

if (
    strtotime('today') >= strtotime($open_day) && strtotime('today') <= strtotime($close_day) 
) { 
    echo 'display rego form'; 
} 
else { 
    echo 'Come back another time'; 
} 
関連する問題