【问题标题】:Change the week start day from Monday to Saturday将一周的开始日期从星期一更改为星期六
【发布时间】:2023-03-28 15:28:01
【问题描述】:

要显示工作日数,我使用以下命令:

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。在这方面,给定日期的周数将受到相应影响。

我在PHP DateTime() class, change first day of the week to Monday 中找到了这段代码,旨在将一周的第一天从星期日更改为星期一

    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>";

谁能建议需要的修改或其他代码sn-p,它将把一周的开始日变成星期六?

【问题讨论】:

  • 你用过“$this->format('N') == 6”吗?
  • @Dhananjay Kyada 是的,我已经添加了上面在stackoverflow中找到的函数。 >
  • 通过php.net/manual/en/intlcalendar.setfirstdayofweek.php。它可能会帮助你。
  • @Dhananjay Kyada 谢谢!不幸的是,它对我的​​测试没有影响。
  • 恕我直言 - 如果你在 PHP 中执行任何与日期相关的算术,你真的应该使用一个库。它将为您节省大量时间和头痛。目前,carbon.nesbot.com/docs 是事实。

标签: php function dayofweek weekday


【解决方案1】:
<?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!';
?>

【讨论】:

  • 感谢您的建议,但在您的代码下方添加:
  • 我完全明白:2020-10-17 是本周的第 0 天!今天的日期是:2020/10/28 工作日是:星期三 工作日数是:3 周数是:44
  • 但我需要的是让星期三参加工作日的 4 号
  • 是的,因为 $standardDate 数组用于此目的从星期一到星期六开始一天
猜你喜欢
  • 2012-04-27
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
相关资源
最近更新 更多