首页 > 后端开发 > php教程 > 如何用 PHP 计算给定周数或日期的星期几?

如何用 PHP 计算给定周数或日期的星期几?

Linda Hamilton
发布: 2024-10-26 09:20:02
原创
585 人浏览过

How to Calculate the Days of the Week Given a Week Number or Date in PHP?

根据周数计算一周中的天数

给定周数,例如使用日期 -u %W 获得的周数命令,生成该星期的相应日期通常很有用。让我们从一个例子开始。

考虑 2008 年的第 40 周。使用 ISO 8601 的周编号规则,我们预计该周的天数为:

2008-10-06
2008-10-07
2008-10-08
2008-10-09
2008-10-10
2008-10-11
2008-10-12
登录后复制

PHP解决方案:

在PHP中,日期函数提供了各种格式选项。这是一个简单的循环,用于打印给定周数的日期:

<code class="php">$week_number = 40;
$year = 2008;
for($day=1; $day<=7; $day++)
{
    echo date('Y-m-d', strtotime($year."W".$week_number.$day))."\n";
}
登录后复制

此循环迭代一周中的 7 天,并以以下格式打印相应的日期:YYYY-MM-DD .

用于计算给定日期的一周中的天数的 PHP 解决方案:

另一种情况涉及计算给定特定日期的一周中的天数。这是执行此操作的 PHP 函数:

<code class="php">function week_from_monday($date) {
    // Extract date parts
    list($day, $month, $year) = explode("-", $date);

    // Get the weekday of the given date
    $wkday = date('l',mktime('0','0','0', $month, $day, $year));

    // Calculate the number of days to subtract to get Monday
    switch($wkday) {
        case 'Monday': $numDaysToMon = 0; break;
        case 'Tuesday': $numDaysToMon = 1; break;
        case 'Wednesday': $numDaysToMon = 2; break;
        case 'Thursday': $numDaysToMon = 3; break;
        case 'Friday': $numDaysToMon = 4; break;
        case 'Saturday': $numDaysToMon = 5; break;
        case 'Sunday': $numDaysToMon = 6; break;   
    }

    // Get timestamp of Monday
    $monday = mktime('0','0','0', $month, $day-$numDaysToMon, $year);

    // Calculate dates for 7 days from Monday
    $dates = array();
    $seconds_in_a_day = 86400;
    for($i=0; $i<7; $i++)
    {
        $dates[$i] = date('Y-m-d',$monday+($seconds_in_a_day*$i));
    }

    return $dates;
}
登录后复制

示例用法:

<code class="php">$dates = week_from_monday('07-10-2008');
print_r($dates);
登录后复制

输出:

Array
(
    [0] => 2008-10-06
    [1] => 2008-10-07
    [2] => 2008-10-08
    [3] => 2008-10-09
    [4] => 2008-10-10
    [5] => 2008-10-11
    [6] => 2008-10-12
)</code>
登录后复制

以上是如何用 PHP 计算给定周数或日期的星期几?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板