在php中从当前日期获取从周一到周日开始的上周记录

上周开始于:


2019年5月13日(星期一)至2019年5月19日(星期日)


本周开始于:


2019年5月20日(星期一)至2019年5月26日(星期日)


在数据库中,我有这样的记录:


task_id   c_date

1         2019-05-14

2         2019-05-16 

3         2019-05-13

4         2019-05-17

5         2019-05-19

6         2019-05-21

7         2019-05-23

8         2019-05-24

9         2019-05-24

例外输出将类似于上周的 1,2,3,4,5 记录


我试过的:(方法一)


       $dt = new DateTime;

       $dt->setISODate($dt->format('o'), $dt->format('W') - 1);

        $year = $dt->format('o');

        $week = $dt->format('W');



          $this_week = array();


           do {


              echo '<span>' . $dt->format('l') . " " . $dt->format('d M Y') . "</span></br>\n";

            // $date_sheet = $dt->format('Y-m-d'); 

            // array_push($this_week, $date_sheet);  


      $dt->modify('+1 day');



     } while ($week == $dt->format('W'));

输出:


Monday 13 May 2019

Tuesday 14 May 2019

Wednesday 15 May 2019

Thursday 16 May 2019

Friday 17 May 2019

Saturday 18 May 2019

Sunday 19 May 2019  

我更喜欢这个,但问题是我无法弄清楚如何从数据库中从这种方法中获取记录,所以我试图找到替代方案,我认为它好多了,但不知道如何做到这一点


小唯快跑啊
浏览 243回答 1
1回答

天涯尽头无女友

你可以使用类似的东西(警告没有检查错误):$dtFrom = new DateTime; // get current date$dtTo = new DateTime;// format for previous week (no previous year check)$dtFrom->setISODate($dtFrom->format('o'), $dtFrom->format('W') - 1);// do the same for end date range$dtTo->setISODate($dtTo->format('o'), $dtTo->format('W') );// subtract 1 day$dtTo->sub(new DateInterval('P1D') );// convert to iso date for database use$dFrom = $dtFrom->format('y-m-d');$dTo&nbsp; &nbsp;= $dtTo->format('y-m-d');$dFrom 和 $dTo 是可以在查询中使用的日期格式SELECT * FROM mytable WHERE DateRange between $dFrom AND $dTo;
打开App,查看更多内容
随时随地看视频慕课网APP