如何在 PHP 中提取给定周数内的星期几(从星期一开始)?

Susan Sarandon
发布: 2024-10-26 06:10:30
原创
372 人浏览过

How can I extract the days of the week within a given week number in PHP, starting with Monday?

计算给定周数的星期几

此问题旨在提取给定周数内的星期几,具体来说从星期一开始。

PHP 解决方案

可以使用以下 PHP 代码来实现此计算:

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

此脚本产生以下结果第 40 周的输出:

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

用于提取一周内日期的替代 PHP 解决方案

下面是一个调整后的解决方案,其操作略有不同:

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

    $wkday = date('l', mktime('0', '0', '0', $month, $day, $year));

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

    $monday = mktime('0', '0', '0', $month, $day - $numDaysToMon, $year);

    $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;
}
登录后复制

此函数接受格式为“DD-MM-YYYY”的日期字符串,并将其转换为表示从星期一开始的一周中的天数的日期数组。例如,使用日期“07-10-2008”会生成以下数组:

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!