PHP函数提供2种不同的结果

时间:2018-08-21 20:27:26

标签: php date while-loop

我有一个显示一个月中的几天并返回天数的代码。

但是我有问题

function getDays($annee = null, $mois, $jour){
  if(empty($annee)){
    $annee = date('Y');
  }
  $date = new DateTime('first '.$jour.' of '.$mois.' '.$annee);
  $thisMonth = $date->format('m');
  $ok = array();

  while ($date->format('m') === $thisMonth) {
      echo $date->format('d');
      $date->modify('next '.$jour);
      array_push($ok, $date->format('d'));
  }
  return $ok;

}

此行:echo $date->format('d');

有:01 08 15 22 29

但是当我:var_dump(getDays('2018','jan','mon'));

有:08 15 22 29 05

所以我想知道,这怎么给我两个不同的结果?

谢谢

1 个答案:

答案 0 :(得分:0)

感谢@Devon

function getDays($annee = null, $mois, $jour){
  if(empty($annee)){
    $annee = date('Y');
  }
  $date = new DateTime('first '.$jour.' of '.$mois.' '.$annee);
  $thisMonth = $date->format('m');
  $ok = array();

  while ($date->format('m') === $thisMonth) {
      echo $date->format('d');
      array_push($ok, $date->format('d'));
      $date->modify('next '.$jour);
  }
  return $ok;

}

我将push_array行向上移动,并且有效!