简体   繁体   English

PHP中的星期日至星期六的星期几数组

[英]sunday to saturday week date array in php

for getting sunday to saturday dates for calender week i am using that code in php : 为了获得日历周的周日至周六日期,我在php中使用了该代码:

$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;

after this i am getting array from 2018-10-29 to 2018-11-04 but i want array from 2018-11-04 2018-11-10 what i am doing wrong here in this code can anyone please let me know or correct me where i am doing wrong in this code 在此之后,我将从2018-10-29到2018-11-04获取数组,但我想要从2018-11-04 2018-11-10数组,我在此代码中做错了什么,有人可以让我知道或纠正我在这段代码中我做错了的地方

Are you assuming Sunday is day of the week number 1 ? 你假定星期日是一周数天1 And Saturday 7 ? 还有星期六7

If so, Sunday is 7 and Saturday 6 . 如果是这样,则星期日为7 ,星期六为6 So your code would look like this: 因此,您的代码如下所示:

$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);
}

One solution using PHP powerful date functions time date and strtotime 一种使用PHP功能强大的日期函数time datestrtotime的解决方案

<?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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM