首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星期日至星期六星期日期数组在php中

星期日至星期六星期日期数组在php中
EN

Stack Overflow用户
提问于 2018-11-04 16:07:36
回答 2查看 215关注 0票数 0

为了获得日历周的周日至周六日期,我在php中使用了该代码:

代码语言:javascript
复制
$dt = strtotime(date('Y-m-d'));

    $res['start'] = date('N', $dt)==1 ? date('Y-m-d', $dt) : date('Y-m-d', strtotime('last sunday', $dt));

    $res['end'] = date('N', $dt)==7 ? date('Y-m-d', $dt) : date('Y-m-d', strtotime('saturday', $dt));

    $day_of_week = date('N', strtotime($res['start']));


    $given_date = strtotime( $res['end'] );

    $first_of_week =  date('Y-m-d', strtotime("- {$day_of_week} day", $given_date));

    $first_of_week = strtotime($first_of_week);

    for($i=1 ;$i<=7; $i++)
    {
        $datess[] = date('Y-m-d', strtotime("+ {$i} day", $first_of_week));

        $week_array[] = date('m/d', strtotime("+ {$i} day", $first_of_week));
  print_r($datess);
    }
exit;

在此之后,我得到了2018-10-29到2018-11-04的数组,但是我想从2018-11-04 2018-11-10数组中得到数组,我在这段代码中做错了什么,请让我知道或纠正我在代码中做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-04 16:22:09

你是否假设星期日是一周中的第一天1?和星期六7

如果是这样的话,周日是76星期六。所以您的代码将如下所示:

代码语言:javascript
复制
$dt = strtotime(date('Y-m-d'));

$res['start'] = date('N', $dt) == 7 ? date('Y-m-d', $dt) : date('Y-m-d', strtotime('last sunday', $dt));

$res['end'] = date('N', $dt) == 6 ? date('Y-m-d', $dt) : date('Y-m-d', strtotime('saturday', $dt));

$day_of_week = date('N', strtotime($res['start']));


$given_date = strtotime($res['end']);

$first_of_week =  date('Y-m-d', strtotime("- {$day_of_week} day", $given_date));

$first_of_week = strtotime($first_of_week);

for ($i = 1 ; $i <= 7; $i++) {
    $datess[] = date('Y-m-d', strtotime("+ {$i} day", $first_of_week));

    $week_array[] = date('m/d', strtotime("+ {$i} day", $first_of_week));
    print_r($datess);
}
票数 1
EN

Stack Overflow用户

发布于 2018-11-04 16:30:35

一种使用PHP强大的日期函数时间日期strtotime的解决方案

代码语言:javascript
复制
<?php

if (date('D') == 'Sun') {
    $lsTimestamp = time();
} else {
    $lsTimestamp = strtotime('last Sunday');
}

$dates = [date('Y-m-d', $lsTimestamp)];
for ($i = 1; $i <= 6; $i++) {
    $dates[] = date('Y-m-d', strtotime('+' . $i . ' day', $lsTimestamp));
}

var_dump($dates);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53142698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档