将每周的开始日期从星期一更改为星期六

时间:2019-06-17 12:56:30

标签: php function dayofweek weekday

要显示工作日数,我使用以下方法:

echo "Today's date is: " . date("Y/m/d") . "<br>";
echo "The weekday is: " . date("l") . "<br>";
echo "The number of the weekday is: " . date("N") . "<br>";
echo "The week number is:" . date("W");

当一天是星期一时,上面的返回“工作日数为:1”。这是因为默认情况下一周从星期一开始。我需要将周开始日期更改为周六。然后,上面的“工作日数为:”将在星期一返回3,在星期六返回1。因此,给定日期的星期数将受到相应的影响。

我在this way中发现了这段代码,旨在将每周的第一天从星期日更改为星期一

    class EuroDateTime extends DateTime {


    // Override "modify()"
      public function modify($string) {


      // Change the modifier string if needed
      if ( $this->format('N') == 1 ) { // It's Sunday and we're calculating a day using relative weeks
          $matches = array();
          $pattern = '/this week|next week|previous week|last week/i';
          if ( preg_match( $pattern, $string, $matches )) {
              $string = str_replace($matches[0], '-7 days '.$matches[0], $string);
          }
      }
      return parent::modify($string);

  }

但是我没有成功修改它,因此无法将星期开始日期更改为星期六。

我需要完成的酸性测试尤其是以下输出:

echo "The number of the weekday is: " . date("N") . "<br>";

任何人都可以建议需要的修改或另一个将周开始日期转换为星期六的代码段吗?

1 个答案:

答案 0 :(得分:0)

<?php
    $date = "2020-10-17"; 
    $standardDate = array("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri");
    $dayNameOfWeek = date("D", strtotime($date));
    $key = array_search($dayNameOfWeek, $standardDate);
    echo $date . ' is ' . $key. 'th Day of this week!';
?>