You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中获取以周六为起始的指定周的周六日期?

在PHP中获取以周六为起始的上周/本周第一天日期

要实现这个需求,最简洁的方式是直接利用PHP的日期相对格式化能力,获取最近的周六(即你定义的“本周起始日”),再通过偏移7天得到上周的起始日,完全不需要修改默认的一周起始设置。

代码实现(DateTime版本,推荐)

// 初始化当前日期对象
$today = new DateTime();

// 获取本周的起始日(最近的周六)
$thisWeekStart = (clone $today)->modify('last saturday');

// 获取上周的起始日(本周起始日往前推7天)
$lastWeekStart = (clone $thisWeekStart)->modify('-7 days');

// 格式化输出结果
echo "上周周六:" . $lastWeekStart->format('Y-m-d') . PHP_EOL;
echo "本周周六:" . $thisWeekStart->format('Y-m-d') . PHP_EOL;

代码实现(strtotime版本,更简洁)

// 直接获取本周起始日(最近的周六)
$thisWeekSat = date('Y-m-d', strtotime('last saturday'));
// 推导上周起始日
$lastWeekSat = date('Y-m-d', strtotime($thisWeekSat . ' -7 days'));

echo "上周周六:{$lastWeekSat}\n本周周六:{$thisWeekSat}";

验证示例

当当前日期为2024-03-04时:

  • 本周周六(起始日):2024-03-02
  • 上周周六(起始日):2024-02-24
    完全符合你的预期结果。

原理说明

last saturday是PHP内置的相对日期格式,它会直接指向当前时间点之前最近的周六,刚好匹配你以周六作为一周起始的定义。在此基础上减7天,就能精准得到上周的起始日,逻辑简单且无需额外计算星期偏移量。

内容的提问来源于stack exchange,提问作者Klax Cuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:56:12