-6

このコードにエラーがあります。私がそれを解決するのを手伝ってください。

function holiday($today) {    

    $year = substr($today, 0, 4);     

    switch($today) {

      case $year.'-01-01':
          $holiday = 'New Year';
          break;

      case $today:
          $today11 = new DateTime($today);
          $R= $today11->format('l') . PHP_EOL;
          $Sunday='0';

          if($R == 0) {
              $holiday = 'Sunday';
          } else {
              $holiday = 'Normal Day';  
          }
      }

      return $holiday;
}

echo $tday= holiday($today); 
4

3 に答える 3

0

これに switch を使用している理由がわからない場合は、 switch の使用方法を読んでください。以下の関数が機能します。

function holiday($today) {
    // z returns the number of the day in the year, 0 being first of January
    if(date("z", $today) == 0) {
         return "New Year";
    }

    // w returns the number of the day in the week 0-6 where 0 is Sunday
    if(date("w", $today) == 0) {
         return "Sunday";
    }

    return "Normal Day";
}

$today = date();
echo holiday($today);
于 2012-09-06T07:13:19.620 に答える
0

あなたの holiday() 関数の実用的な実装は次のとおりです。

function holiday($today) {    

$date = strtotime($today);     

//check if Sunday
if (date('l', $date) == 'Sunday') {
    return 'Sunday';
}

//check if New Year
if ((date('j', $date) == 1) && (date('n', $date) == 1)) {
    return 'New Year';
}

//else, just return Normal Day
return 'Normal Day';

}

//$today is in YYY/MM/DD format
echo $tday = holiday($today);

また、この場合、PHP のdateリファレンスが役立ちます: http://php.net/manual/en/function.date.php

于 2012-09-06T07:16:52.903 に答える
0

それを試してみてください:-

function holyday($today)
{
    $start_date = strtotime($today);


    if(date('z',$start_date) ==0)
    {
         return 'New Year';

    }else{

        if(date('l',$start_date) =='Sunday')
        {
             return 'Sunday';

        }else{

            return "Noraml Day";
        }
    }
}

echo holyday('2012-09-06');

出力 = 通常の日

echo holyday('2013-01-01');

アウトプット=新年

于 2012-09-06T07:33:31.177 に答える