-1

次の形式でデータベースに保存される開始日と終了日があります。

start date= 20121004     //4th October 2012
end date= 20121004     //16th November 2012

日付形式を使用できます:

$date = date("Ymd"); // returns: 20121004

表示するタイミングと表示しないタイミングを決定する

私が使用する更新入力ボックスを再設定するには:

$start=(str_split($stdate,4));// START DATE: splits stored date into 2x4 ie: 20121209 = 2012 1209
$syr =  $start[0];// re first half ie: 2012 which is the year
$start2 = $start[1];//re second half ie: 1209
$start3=(str_split($start2,2));// splits second half date into 2x2 ie: 1209 = 12 09
$smth = $start3[0]; // first half = month ie: 12
$sday = $start3[1];  // second half = day ie: 09
$expiry=(str_split($exdate,4)); ///SAME AGAIN FOR EXPIRY DATE ...
$xyr =  $expiry[0];
$expiry2 = $expiry[1];
$expiry3=(str_split($expiry2,2));
$xmth = $expiry3[0]; 
$xday = $expiry3[1];

これは正常に機能しますが、このようにデータベースの日付を表示する月の入力ボックスを再作成する必要があります

<option value="01">January</option`>

使用して

if ($smth==01):$month='January'; endif;
if ($xmth==01):$month='January'; endif;
// if the start and/or expiry month number = 01 display $month as January
if ($smth==02):$smonth='February'; endif;
if ($xmth==02):$smonth='February'; endif;
if ($smth==03):$month='March'; endif;

<select name="stmonth" class="input">
<option value="<?=$smth?>"><?=$month?></option>
...
</select>

$smth AND $xmthごとに同じ行を 2 回記述するよりも、IF EITHER ONE EQUALS を表示する簡単な方法はありますか? 再:if ($smth **and or** $xmth ==01):$month='January'; endif;

======================UPDATE==================== なしで表示する簡単な方法を見つけましたネストされた if ループを使用します。元の質問とは関係ありませんが、誰かに役立つかもしれません:

$months = array(X,January,February,March,April,May,June,July,August,September,October,November,December); 

///コードを相対的に維持するためのダミーの最初のレコード

//simple swith command
switch ($smth){
case 1: $s = 1; break;
case 2: $s = 2; break;
case 3: $s = 3; break;
case 4: $s = 4; break;
case 5: $s = 5; break;
case 6: $s = 6; break;
case 7: $s = 7; break;
case 8: $s = 8; break;
case 9: $s = 9; break;
case 10: $s = 10; break;
case 11: $s = 11; break;
case 12: $s = 12; break;
default; }
switch ($xmth){
case 1: $x = 1; break;
case 2: $x = 2; break;
case 3: $x = 3; break;
case 4: $x = 4; break;
case 5: $x = 5; break;
case 6: $x = 6; break;
case 7: $x = 7; break;
case 8: $x = 8; break;
case 9: $x = 9; break;
case 10: $x = 10; break;
case 11: $x = 11; break;
case 12: $x = 12; break;
default; }

次に、次のように表示します。

<select name="stmonth" class="input">
<option value="<?=$smth?>"><?=$months[$s]?></option>
4

2 に答える 2

1

if( statement || statement)いずれかのステートメントが true の場合に合格します。

if( $smth == 1 || $xmth == 1)

先頭0に付いている数字は 8 進数と見なされるため、は有効な 8 進数ではないため、09になることに注意してください。09

于 2012-10-04T21:34:48.577 に答える
0

ORステートメントがあなたが探しているものだと思います。

if ($smth == 1 || $xmth == 1)

PHP Operatorsについてお読みください。

ifネストされたステートメントを使用する代わりに、両方が正しい必要がある場合は AND があります。

if(something && somethinelse) {
    //do this 
}

それ以外の:

if(something) { 
    if(somethingelse) {
       //do this
 }
于 2012-10-04T21:36:11.177 に答える