显示(日历)周的第一天和最后一天
Posted
技术标签:
【中文标题】显示(日历)周的第一天和最后一天【英文标题】:Display the first and last day of a (calendar) week 【发布时间】:2021-08-26 03:11:53 【问题描述】:在我的数据库中,我有一个包含连续日期的表。我将所有日期分组到日历周,并将它们显示在我的 CSS 的表格中。
现在我想在我的表格中显示日历周的第一天和最后一天。 这是我的代码:
$statement = $pdo->prepare("SELECT WEEK(Date), Date FROM table GROUP BY WEEK(Date)");
$result = $statement->execute();
$count = 1;
while($row = $statement->fetch())
echo "<tr>";
echo "<td>".$row['WEEK(Date)']."</td>";
echo "<td>".$row['Date']."</td>";
目前只显示日历周的第一天。
我想过复制$row['Date']
并添加+6(天),但第一个数据集不是一周的第一天。所以第一个日历周的第一个日期范围是错误的。
有谁知道如何解决这个问题?
【问题讨论】:
这能回答你的问题吗? Carbon: Get start and end date of week when knowing week in year and year 【参考方案1】:在这里查看测试:https://www.tehplayground.com/c2dOYxxwIa9LDscW
while($row = $statement->fetch())
$thedate = $row['Date'];
$dow = date('w', strtotime($thedate)); // the day of the week of the date - number based - zero is sunday
$dowsun = date('Y-m-d', (strtotime($thedate) - ($dow * 60*60*24))); // first day of that week (sunday)
$dowsat = date('Y-m-d', strtotime($thedate) + ((6-$dow) * 60*60*24)); // last day of that week (saturday)
/* for example:
if $row['WEEK(Date)'] = "2021-06-08" which is a Tuesday
$dowsun = "2021-06-06" which is a Sunday
$dowsat = "2021-06-12" which is a Saturday
with this answer you get the full week that contains the target date
*/
echo "<tr>";
echo "<td>".$row['WEEK(Date)']."</td>";
echo "<td>".$row['Date']."</td>";
【讨论】:
我是编码新手,所以我不确定我是否了解您的代码是如何工作的。但是我现在如何显示所显示日历周的最后一天。目前只显示一个日期,例如 2021-05-16。我想这样显示:2021-05-16 - 2021-05-22。 我更新了答案,解释了这些值是什么 @Gandalfthegrey - 抱歉出现错误。我更新了答案并提供了一个链接以表明它有效。 @Gandalfthegrey 你能告诉我 $row['WEEK(Date)'] 等于什么吗? - 给我一个例子,这样我就可以更新我的示例链接 它的日历周例如 KW 19以上是关于显示(日历)周的第一天和最后一天的主要内容,如果未能解决你的问题,请参考以下文章
sqlServer 求当前周的第一天和最后一天,当前月的第一天和最后一天,前三个月的第一天和今天