计算给定周数的星期几
此问题旨在提取给定周数内的星期几,具体来说从星期一开始。
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中文网其他相关文章!