setlocale(LC_TIME,"chs");
  $weekday=strftime("%A");
  switch($wekkday)
  {
      case "星期一":
            echo "今天是$weekday 新的一周开始了";
            break;
      case "星期二":
            echo "今天是$weekday 保持昨天的状态继续努力";
            break;
      case "星期三":
            echo "今天是$weekday 真快啊过去半周了";
            break;
      case "星期四":
            echo "今天是$weekday 还有一天就放假了呢";
            break;
      case "星期五":
            echo "今天是$weekday 好好想想明天去哪里玩吧";
            break;
      default:
            echo "今天是$weekday HOHO~可以好好放松下了";
            break;
   }
为什么,我得到的输出总是“今天是星期二 HOHO~可以好好放松下了”,其中的星期几会随着本地日期的变更而变更,可是后面的句子却始终是“HOHO~可以好好放松下了”,为什么呢???请教各位。

解决方案 »

  1.   

    strftime("%A")返回的根本就不是你的case的格式    echo $weekday; 你就知道为什么了  
    %A - 当前区域星期几的全称    去看看手册strftime的用法
      

  2.   

    还有 你的
    $weekday=strftime("%A");
      switch($wekkday)
    switch中的变量打错了
      

  3.   

    我使用了echo $weekday;,返回的是字符串的星期二啊?!我case里用作比较的也是字符串的星期二吧.
      

  4.   

    还是没研究透彻,如果仔细想想应该也就明白了,变量名错误,导致只执行default后面的。输出语句里的$weekday迷惑了我,糊涂,糊涂...