I want to get the start date and end date of two weeks within a date range in PHP.
Week start = Sunday and week end = Saturday
ie)for example if date range is
$start = ‘2013-01-01’ and
$end =’2013-02-28′
Required Result
Start Date–>2013-01-01 End Date –>2013-01-12
Start Date–>2013-01-13 End Date –>2013-01-26
Start Date–>2013-01-27 End Date –>2013-02-09
Start Date–>2013-02-10 End Date –>2013-02-23
Start Date–>2013-02-24 End Date –>2013-02-28
Code
<?php
$st = '2013-01-01';
$et ='2013-02-28';
$start_date = date('Y-m-d', strtotime($st));
$end_date = date('Y-m-d', strtotime($et));
$end_date1 = date('Y-m-d', strtotime($et. '+ 6 days'));
$weekfrom = array();
$weekto = array();
for($date = $start_date; $date <= $end_date1; $date = date('Y-m-d', strtotime($date. ' + 14 days')))
{
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}+1")); //Returns the date of monday in week
if($from < $start_date) $from = $start_date;
$to = date("Y-m-d", strtotime("{$year}-W{$week}-6")); //Returns the date of sunday in week
if($to > $end_date)
{
$to = $end_date;
}
if($from < $to)
{
array_push($weekfrom,$from);
array_push($weekto,$to);
}
}
$n = count($weekfrom);
for($i = 0;$i<$n;$i++)
{
echo "Start Date-->".$weekfrom[$i];
echo " End Date -->".$weekto[$i]."\n";
}
?>
Current Result
Start Date–>2013-01-01 End Date –>2013-01-05
Start Date–>2013-01-13 End Date –>2013-01-19
Start Date–>2013-01-27 End Date –>2013-02-02
Start Date–>2013-02-10 End Date –>2013-02-16
Start Date–>2013-02-24 End Date –>2013-02-28
In the current result the start date is correct.But the issue is within the end date. Help me to find the issue
Just change to this one…
See Codepad