在 PHP 中获取给定一周的开始天和结束天

2023-12-22

我正在尝试使用星期日作为开始日期和参考日期来获取周范围,例如$date,但我似乎无法弄清楚。

例如,如果 $date 为 2009-05-01,我将得到 2009-04-26 和 2009-05-02。 2009-05-10 将产生 2009-05-10 和 2009-05-16。我当前的代码如下所示(我不记得从哪里提取它,因为我忘记在评论中写下网址):

function x_week_range(&$start_date, &$end_date, $date)
{
    $start_date = '';
    $end_date = '';
    $week = date('W', strtotime($date));
    $week = $week;

    $start_date = $date;

    $i = 0;
    while(date('W', strtotime("-$i day")) >= $week) {
        $start_date = date('Y-m-d', strtotime("-$i day"));
        $i++;
    }

    list($yr, $mo, $da) = explode('-', $start_date);

    $end_date = date('Y-m-d', mktime(0, 0, 0, $mo, $da + 6, $yr));
}

我意识到它所做的只是在当前日期上添加 7 天。你会怎么做?


我会利用 PHP斯特托时间 http://www.php.net/strtotime令人敬畏:

function x_week_range(&$start_date, &$end_date, $date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    $start_date = date('Y-m-d', $start);
    $end_date = date('Y-m-d', strtotime('next saturday', $start));
}

根据您提供的数据进行测试,有效。不过,我不太喜欢你正在进行的整个参考工作。如果这是我的功能,我会这样:

function x_week_range($date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    return array(date('Y-m-d', $start),
                 date('Y-m-d', strtotime('next saturday', $start)));
}

并这样称呼它:

list($start_date, $end_date) = x_week_range('2009-05-10');

我不太喜欢做这样的数学题。日期很棘手,我更喜欢让 PHP 来解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中获取给定一周的开始天和结束天 的相关文章

  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • php 中 php.ini 的 log_errors 和 error_log

    我正在尝试通过 php ini 更改 php ini 中的设置 我的问题是 当出现错误时 它不会放入文件 error log txt 中 那么我做错了什么 这是我的代码 Settings for php ini ini set sessio
  • 使用 ImapMailbox.php 按日期对 Imap 邮箱进行排序

    我有一个客户支持系统 它会在收到电子邮件时创建电子邮件 我曾经使用后缀和特殊配置来获取电子邮件以添加额外的功能 例如 我想包含从电子邮件发送的附件 系统不会执行此操作 而是创建一封带有主题的电子邮件 因此我可以通过匹配主题来包含附件 我使用
  • Ajax 与 chrome 扩展

    我将 url 发送到 chrome 扩展中的 php 文件 并需要获得响应 但不起作用 清单 json name Get pages source version 1 0 manifest version 2 description Get
  • 如何将JS/CSS文件包含到Slim框架的模板中?

    我正在使用 Slim 框架开发一个简单的网络应用程序 我遇到了一个可能很简单的问题 我想将静态文件 CSS 和 Javascript 包含到我的模板中 我的项目文件夹结构如下 index php lt where all the routi
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • 在 PHP 中使用可变变量是不好的做法吗?

    例如 一个简单的MVC类型系统 api class method使用重写为 PHP 变量 htaccess nginx conf 然后做类似的事情
  • 带摘要的 php curl 返回两个响应

    我发现了一个 奇怪 的 php CURL 行为 这让我抓狂 基本上我正在做的是使用curl 进行摘要身份验证的调用 这是我的代码的摘录 curl setopt this gt c CURLOPT HTTPAUTH CURLAUTH DIGE
  • 使用活动目录对 Intranet 站点上的用户进行身份验证

    我建立了一个 内联网 站点 它有自己的登录系统 用户注册为新用户 并使用其上的用户名 密码登录该站点 但是 现在我想扩展它 让 Intranet 站点使用现有的 ActiveDirectory 进行身份验证 这就是我正在寻找的 前进 当用户
  • FPM 与 apache2 无法工作(权限被拒绝)

    我正在尝试使用 apache fastcgi 和 fpm 设置一个 Debian Web 服务器 但我越来越恼火 一旦我停用 mod php 我就会收到以下错误 2014 年 5 月 22 日星期四 12 16 10 错误 客户端 xxx
  • 将 jQuery 与 Selenium WebDriver 结合使用 - 如何将 JSON 对象转换为 WebElement?

    我正在使用 Selenium WebDriver 我想执行 jQuery 代码来查找一些元素 我的代码如下 public function uploadGrantDoc script return itemlist grant file u
  • PHP 何时实现了函数使用闭包? [复制]

    这个问题在这里已经有答案了 我在 PHP 手册中找不到解释的部分use 我有代码 num 0 array walk recursive REQUEST function mValue use num num 我的 Eclipse 抱怨 Pa
  • 将 Base64 字符串转换为图像文件? [复制]

    这个问题在这里已经有答案了 我正在尝试将我的 Base64 图像字符串转换为图像文件 这是我的 Base64 字符串 http pastebin com ENkTrGNG http pastebin com ENkTrGNG 使用以下代码将
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • Laravel 5 Eloquent 在多个级别上将关系附加到 JSON

    因此 在模型中包含关系非常容易 例如 class User extends Model protected with roles class Role extends Model protected with permissions 当有对
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • 使用带有动态选择的 Wagtail“ChoiceBlock”,而不是硬编码列表

    我们有一个博客模型的设置 该模型与 BlogPageCategory 具有多对多关系 并且我们有一个 最近的博客文章 流字段块 可让您指定是否显示 X 最新博客文章的卡片 或来自特定类别的 X 最新博客文章 因此 我们从以下代码开始 fro
  • jquery 的跨域和 google CDN [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 不使用Google CDN for jquery违反了网页上不使用跨域请求的规则 我们是否足够信任谷歌来做到这一点 浏览器本身允许使用来自外国网
  • Java中super是如何实现的?

    超级 实际上是在哪里定义的 当我们使用 super someMethod 时 它是定义为 java lang Object 类还是 java lang Class 类中的字段吗 当我们从子类调用时 super 包含对其超类的引用 以同样的方
  • 如何在 Cython 中调用多线程 C 函数?

    我有一个关于如何在 Cython 中调用多线程 C 函数的问题 在 C 函数中执行多线程操作之前 之后是否需要释放 获取 GIL 或者我可以像普通的 C 函数一样使用它吗 我应该遵循指示吗here http docs python org
  • 小对象分配器

    有人在大型项目中使用过 Andrei Alexandrescu 的 Modern C Design 中的 SmallObjectAllocator 吗 我想实现这个分配器 但在我的项目中使用它之前我需要一些关于它的意见 我做了一些测试 看起
  • 错误:“operator<<”不匹配(操作数类型为“std::ostream”{aka“std::basic_ostream”} 和“std::_List_iterator”)

    你好 我试图打印一个整数列表 但我不断收到该错误 我有一个结构 上面有一个列表 struct faceFiguration int faceID list
  • 将可绘制资源图像转换为位图

    我正在尝试使用Notification Builder setLargeIcon bitmap 需要一个位图图像 我的可绘制文件夹中有要使用的图像 那么如何将其转换为位图 你可能的意思是Notification Builder setLar
  • python 多个 json 字典

    我有一个包含多个 json 字典的 json 文件 格式如下 x 1 y 2 z 3 x 2 y 3 z 4 x 3 y 4 z 5 如何将其转换为一种 json 字典格式 如下所示 items x 1 y 2 z 3 x 2 y 3 z
  • 为什么在 EmailJS 中添加服务时出现错误?

    我在尝试在电子邮件 JS 中配置服务时收到 412 Gmail API 请求的身份验证范围不足 此外 在使用 React js 库发送电子邮件时收到相同的错误 下面是错误的屏幕截图 添加服务时图像显示错误 https i stack img
  • php switch case 语句来处理范围

    我正在解析一些文本并根据一些规则计算权重 所有角色都具有相同的权重 这会使 switch 语句变得非常长 我可以在 case 语句中使用范围吗 我看到其中一个提倡关联数组的答案 weights array a z A Z gt 10 0 9
  • C++ 丢弃限定符

    我有这个错误 BSPArduino cpp 316 错误 将 const BSPArduino 传递为 this virtual void BSPArduino enableWdt const 的参数 WATCHDOG TIMER DELA
  • Java 应用程序如何部署在“现实世界”中?

    作为 Java 编程世界的新手 这个问题一直困扰着我 我首先相信所有的Java文件都被压缩成applets然后就跑了 但我很快意识到情况并非总是如此 有人可以向我解释一下我们如何将 Java 应用程序融入到日常生活的真实产品中吗 TL DR
  • g++ -std=c++0x 出现意外编译问题

    使用 g std c 0x 编译时 我遇到一些编译问题 将 T 类型的元素推回向量 这是一个最小的例子 include
  • Shell 脚本 If [ -f ./file ]

    我正在自学 shell 脚本 我正在研究如何执行 If 但我不明白一个例子 if f NAME tar then do something else something else 现在我做了一些实验 我给 NAME 提供了我目录中的一个文件
  • 使用 SimpleXMLElement 从对象获取数组

    我在获取这些对象中的数组时遇到一些问题 当我 print r 时 会打印以下代码 message object 是对象的名称 SimpleXMLElement Object header gt SimpleXMLElement Object
  • 在 iOS 中绘制多点路线

    我正在尝试在提供的地图应用程序中显示具有多个点的路线 我已经弄清楚如何显示以下两点之间的路线这个帖子 https stackoverflow com q 4609340 620197 我正在建立以下多个点的列表这些方向 http mapki
  • 从旋转的 UIImageView 创建 UIImage

    我有一个 UIImageView 里面有一张图片 我在显示之前通过将 UIImageView 的变换属性设置为 CGAffineTransformMakeRotation angle 来旋转图像 其中 angle 是以弧度为单位的角度 我希
  • 从 LAN 网络中的另一台 PC 访问 Wamp 2.5 phpmyadmin

    我可以从另一台电脑访问 wamp localhost 但是从这台电脑访问 phpmyadmin 时我无法访问如下图 在 WAMPServer 上 配置了 phpMyAdmin 工具 以便除了运行 WAMPServer 的 IP 之外 无法从
  • 如何使用 Angular 的 ngFor 实现项目重新排序/随机播放动画?

    Vue 用户很容易实现这样的 item shuffle 动画 请参阅他们的官方文档 我搜索了很多 但找不到适合 Angular 用户的解决方案 ngFor似乎在洗牌时切换项目内容而不是移动项目 这是我的演示 http embed plnkr
  • 在 PHP 中获取给定一周的开始天和结束天

    我正在尝试使用星期日作为开始日期和参考日期来获取周范围 例如 date 但我似乎无法弄清楚 例如 如果 date 为 2009 05 01 我将得到 2009 04 26 和 2009 05 02 2009 05 10 将产生 2009 0