0

MySQL からの日付 = 2013-12-25 & $daydiff = 'any' の場合、出力を「<em>日付が確認されていません」に設定しようとしています。MySQL の日付 = 「 NULL」 & および $daydiff = 'any'

私のコード

$ArrivalDate = $variants_data['ArrivalDate'];

$daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));

if ( $daydiff = ''  AND $ArrivalDate ='2013-12-25') {
    $ETA ='Date Not Confirmed';
}

elseif ( $daydiff = ''  AND $ArrivalDate ='NULL') {
    $ETA ='Not available';
}

elseif ( $daydiff < '0') {
    $ETA ='';
}
elseif ( $daydiff < '31' ) {
    $ETA ='Within 30 days';
}

elseif ( $daydiff > '31' ) {
    $ETA ='1 Month';
}

elseif ( $daydiff < '60' )  {
    $ETA ='2 Months';
}

elseif ( $daydiff < '90' ) {
    $ETA ='3 Months';
}

elseif ( $daydiff < '121' ) {
    $ETA ='4 Months';
}

elseif ( $daydiff < '152' ) {
    $ETA ='5 Months';
}

elseif ( $daydiff < '182' ) {
    $ETA ='6 Months';
}

elseif ( $daydiff < '213' ) {
    $ETA ='7 Months';
}

elseif ( $daydiff < '245' ) {
    $ETA ='8 Months';
}

elseif ( $daydiff < '274' ) {
    $ETA ='9 Months';
}

elseif ( $daydiff < '304' ) {
    $ETA ='10 Months';
}

elseif ( $daydiff < '334' ) {
    $ETA ='11 Months';
}

elseif ( $daydiff < '365' ) {
    $ETA ='12 Months';
}

else
{
$ETA ='Not Applicable';
}

これまでのところ、コードから必要な結果が得られません。いつ間違ったのでしょうか?

4

2 に答える 2

0

通常、1 か月以上の ETA として 1 か月を取得していますか? 最初の elseif ステートメントは 31 日後に常に true になるため、elseif ステートメントに複数の条件を追加してみてください。だから何か..

elseif ( $daydiff > 30 && $daydiff < 60 ) { // anything between 31 and 59 days is 1 month
$ETA ='1 Month';
}

elseif ( $daydiff > 60 && $daydiff < 90  )  { // anything between 61 and 89 days is 2 months
$ETA ='2 Months';
}

等々...

于 2013-04-08T14:43:41.237 に答える