【问题标题】:How to set the "first day of the week" to Thursday in PHP如何在 PHP 中将“一周的第一天”设置为星期四
【发布时间】:2015-12-11 04:20:38
【问题描述】:

我想将一周的第一天设置为星期四(不是星期日或星期一),因为这是公司的截止日期。

我已经有一个代码来确定日期的当前周数,但它从星期日或星期一开始。

如何根据自己的喜好修改这些?

function findweek($date) {
    $monthstart=date("N",strtotime(date("n/l/Y",strtotime($date))));
    $newdate=(date("j",strtotime($date))+$monthstart)/7;
    $ddate=floor($newdate);
    if($ddate != $date) {
        $ddate++;
    }
    return $ddate;
}

【问题讨论】:

  • 我明白你的意思了............你到底想做什么
  • 在我们公司,工资单的每周开始计数是星期四而不是星期日或星期一,所以我想从星期四开始计算每个月的每周。
  • @RaydenBlack 看看这是否可以帮助你codepad.org/tI0nMQPo你可能需要调整日期时间格式
  • 请问您打算如何使用这个“一周开始”设置?它是否显示日历?做一些内部计算?否则,如果您希望 date('N') 在星期四返回 1,则只需从中减去 3 或 4(取决于一周是从星期一还是星期日开始)。

标签: php function date


【解决方案1】:

http://php.net/manual/en/datetime.formats.relative.php 表示,从 PHP 版本 5.6.23、7.0.8 开始,“星期总是从星期一开始。以前,星期日也被认为是一周的开始。”也就是说,是您的问题是返回的周数可能不正确,具体取决于今天是在本周的星期四还是之前?也许尝试这样的事情:

$date = new DateTime();
$week = intval($date->format('W'));
$day = intval($date->format('N'));
echo $day < 4 ? $week-1 : $week;

如果减 1 不是您可以玩加法/减法的答案,请将结果与您知道正确的实际答案进行比较,直到您得到正确的公式。希望这会有所帮助!

【讨论】:

    【解决方案2】:

    这应该可行。

    function findweek($date, $type = "l") {
        $time = strtotime($date);
        return date($type, mktime(0, 0, 0, date("m", $time) , date("d", $time)-date("d", $time)+1, date("Y", $time)));
    }
    
    echo findweek('2015-09-16');
    

    【讨论】:

    • 我想要的结果是将一个月的第一周的第一天设置为星期四不找到星期。
    猜你喜欢
    • 2013-11-30
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多