how can I get last week' date range in php?

后端 未结 12 1241
轻奢々
轻奢々 2020-12-23 23:23

how can I get last week\' date range in php ?

see my codes bellow:



        
相关标签:
12条回答
  • 2020-12-23 23:26

    Most of those other solutions offered were off by one day.
    If you want Sunday to Saturday for last week, this is the way to do it.

    $start = date("Y-m-d",strtotime("last sunday",strtotime("-1 week")));
    $end = date("Y-m-d",strtotime("saturday",strtotime("-1 week")));
    
    echo $start. " to ".$end;
    
    0 讨论(0)
  • 2020-12-23 23:33

    You can use strtotime()

    $previous_week = strtotime("-1 week +1 day");
    
    $start_week = strtotime("last sunday midnight",$previous_week);
    $end_week = strtotime("next saturday",$start_week);
    
    $start_week = date("Y-m-d",$start_week);
    $end_week = date("Y-m-d",$end_week);
    
    echo $start_week.' '.$end_week ;
    

    UPDATE

    Changed the code to handle sunday. If the current day is sunday then - 1 week will be previous sunday and again getting previous sunday for that will go the one week back.

    $previous_week = strtotime("-1 week +1 day");
    

    In addition if we need to find the current week and next week date range we can do as

    Current week -

    $d = strtotime("today");
    $start_week = strtotime("last sunday midnight",$d);
    $end_week = strtotime("next saturday",$d);
    $start = date("Y-m-d",$start_week); 
    $end = date("Y-m-d",$end_week);  
    

    Next Week -

    $d = strtotime("+1 week -1 day");
    $start_week = strtotime("last sunday midnight",$d);
    $end_week = strtotime("next saturday",$d);
    $start = date("Y-m-d",$start_week); 
    $end = date("Y-m-d",$end_week); 
    
    0 讨论(0)
  • 2020-12-23 23:35

    Simply use

    date("m/d/Y", strtotime("last week monday"));
    date("m/d/Y", strtotime("last week sunday"));
    

    It will give the date of Last week's Monday and Sunday.

    0 讨论(0)
  • 2020-12-23 23:36

    This one will produce the proper result and handles the Monday issue

    <?php
    $monday = strtotime("last monday");
    $monday = date('W', $monday)==date('W') ? $monday-7*86400 : $monday;
    
    $sunday = strtotime(date("Y-m-d",$monday)." +6 days");
    $this_week_sd = date("Y-m-d",$monday);
    $this_week_ed = date("Y-m-d",$sunday);
    
    echo "Last week range from $this_week_sd to $this_week_ed ";
    ?>
    
    0 讨论(0)
  • 2020-12-23 23:37

    This should do the trick

    $startWeek = date('Y-m-d',strtotime("Sunday Last Week"));
    $endWeek = date('Y-m-d',strtotime("Sunday This Week"));
    

    this would not work if ran on a Monday. It would get last Sunday (the day before) to the next Sunday. So using Abhik Chakraborty's method with the above:

    $startTime = strtotime("last sunday midnight",$previous_week);
    $endTime = strtotime("next sunday midnight",$startTime);
    $startDate = date('Y-m-d 00:00:00',$startTime);
    $endDate = date('Y-m-d 23:59:59',$endTime);
    

    This will now give

    start =  2014-08-10 00:00:00
    endDate = 2014-08-17 23:59:59
    
    0 讨论(0)
  • 2020-12-23 23:38

    I know this is old but here's a much more succinct way of doing it:

    $startDate = date("m/d/y", strtotime(date("w") ? "2 sundays ago" : "last sunday"));
    $endDate = date("m/d/y", strtotime("last saturday"));
    echo $startDate . " - " . $endDate
    
    0 讨论(0)
提交回复
热议问题