【发布时间】: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中找到的函数。 >
-
@Dhananjay Kyada 谢谢!不幸的是,它对我的测试没有影响。
-
恕我直言 - 如果你在 PHP 中执行任何与日期相关的算术,你真的应该使用一个库。它将为您节省大量时间和头痛。目前,carbon.nesbot.com/docs 是事实。
标签: php function dayofweek weekday