当前位置: 首页 > 面试题库 >

在PHP中获取给定星期的开始和结束日期

相旭
2023-03-14
问题内容

我正在尝试使用周日作为开始日期以及参考日期(例如)来获取星期范围$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的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来解决。



 类似资料:
  • 问题内容: 如果可能的话,在以下情况下,我希望使用joda或非joda解决方案 假设我的一周从2012年5月2日开始,给定的当前日期为02/22/2011。我需要计算给定当前日期的星期开始和结束日期。因此,我的解决方案的星期应该从02/19开始,而星期在02/25结束。为简单起见,我将我的工作日设置为02/05/2011,但是可能是任何一天,我的工作日始终为7天。 我现有的代码如下,但似乎无法按预

  • 问题内容: 以下是我用来计算给定月份的星期开始日期和结束日期的代码。假设周开始日期为MONDAY,周结束日期为SUNDAY。例如,2013年1月将有5个星期。如果月份从星期日开始- 忽略该天 2013年1月第一周-2012年12月31日至2013年1月6日第二周-2013年1月7日至2013年1月13日第三周-2013年1月14日至2013年1月20日第四周-21日-2013至2013年1月27日

  • 本文向大家介绍php获取本周开始日期和结束日期的方法,包括了php获取本周开始日期和结束日期的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取本周开始日期和结束日期的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍php计算给定日期所在周的开始日期和结束日期示例,包括了php计算给定日期所在周的开始日期和结束日期示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php计算给定日期所在周的开始日期和结束日期。分享给大家供大家参考,具体如下: 运行结果如下: PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用: 在线日期/天数计算器: http://tools.jb51.net/

  • 问题内容: 我在这个问题上看到了一些变体,但我相信这个问题尚未得到解答。 我需要获取一周的开始日期和结束日期,并由年份和星期数选择(而不是日期) 例: 输入: 输出: 返回值将类似于一个数组,其中第一个条目是星期开始日期,第二个条目是结束日期。 可选:当我们需要时,日期格式必须为(正常日期格式,无前导零。 我尝试编辑几乎可以完成我想要的功能,但是到目前为止我还没有运气。 请帮帮我,谢谢。 问题答案

  • 问题内容: 我有一个事件表,其中记录了一个开始和结束时间,作为MySQL DATETIME对象(格式。我想查找在特定日期范围内发生的所有事件。但是,事件可能跨越多天(并且超出了我的范围)日期范围,但是如果它们与我的日期范围重叠1秒或更长时间,我想返回它们。 有什么建议吗? 问题答案: 这将找到范围内完全包含的每个事件: 这将查找事件的任何部分与范围的任何部分重叠的任何事件: