加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 数据库 > MySql > 正文

php – 将日期范围分成相应的周数

发布时间:2021-01-11 10:34:08 所属栏目:MySql 来源:互联网
导读:我有来自和来的日期范围.我想将它转换为几周.假设从日期是1-10-2014,到目前为止是2014年10月31日然后结果是:第1周:2014年1月1日至2014年10月4日第二次:2014年5月5日至2014年10月11日3:2014年10月12日至2014年10月18日第4期:2014年10月19日至2014年10月25

我有来自和来的日期范围.我想将它转换为几周.
假设从日期是1-10-2014,到目前为止是2014年10月31日

然后结果是:

第1周:2014年1月1日至2014年10月4日
第二次:2014年5月5日至2014年10月11日
3:2014年10月12日至2014年10月18日
第4期:2014年10月19日至2014年10月25日
5:2014年10月26日至2014年10月31日

在php.I尝试几个代码,但没有给出绝对结果只给01到7,8到14等.
请帮忙.

我已经尝试过了答案

Get the date of one week from today with PHP in stack overflow


date("Y-m-d",strtotime("+1 week"));
最佳答案 此代码段使用星期日作为一周的第一天:

    $start = new DateTime('2014-10-01');
    $end = new DateTime('2014-10-31 23:59');
    $interval = new DateInterval('P1D');
    $dateRange = new DatePeriod($start,$interval,$end);

    $weekNumber = 1;
    $weeks = array();
    foreach ($dateRange as $date) {
        $weeks[$weekNumber][] = $date->format('Y-m-d');
        if ($date->format('w') == 6) {
            $weekNumber++;
        }
    }

每周都会有它的所有日子.

如果您只想要每周的第一天和最后一天,那么您可以使用array_shift和array_pop来获取它们.例如,您可以使用第一周:

    $wk1Start = array_shift($weeks[1]); //gives you first day of week 1
    $wk1End = array_pop($weeks[1]); // give you the last day of week 1

如果你想要每周的开始和结束日期,这里有一种方法:

    $ranges = array_map(function($week) {
        return 'start: ' . array_shift($week) 
            . ',end: ' . array_pop($week); },$weeks);

这是我的$range的输出:

    Array
    (
        [1] => start: 2014-10-01,end: 2014-10-04
        [2] => start: 2014-10-05,end: 2014-10-11
        [3] => start: 2014-10-12,end: 2014-10-18
        [4] => start: 2014-10-19,end: 2014-10-25
        [5] => start: 2014-10-26,end: 2014-10-31
    )

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读