My web site : Info Tech Vedas
/*
This is function has written to get (N) weeks ago start date of week and end date of the week
Note: Required PHP version 5.3 or greater
Current Date : 19-Feb-2014
Input : Start Date / End Date of Current week(201408), week with - (2014-08) current : 2014-02-16,2014-02-22
Expected Output : Start Date / End Date of week(201403), week with - (2014-03) 5 ago: 2014-01-12,2014-01-18
Result :
Array(
[currentweek] => 08
[currentdate] => 08, 2014-02-19, 3
[startdateofcurrentweek] => 2014-02-16
[enddateofcurrentweek] => 2014-02-22
[weekago] => 201403
[startdateofagoweek] => 2014-01-12
[enddateofagoweek] => 2014-01-18)
*/
$iWeeksAgo = 5;// need weeks ago
$sWeekDayStartOn = 0;// 0 - Sunday, 1 - Monday, 2 - Tuesday
$aWeeksDetails = getWeekDetails($iWeeksAgo, $sWeekDayStartOn);
print_r($aWeeksDetails);
die('end of line of getWeekDetails ');
function getWeekDetails($iWeeksAgo, $sWeekDayStartOn){
$date = new DateTime();
$sCurrentDate = $date->format('W, Y-m-d, w');
#echo 'Current Date (Week of the year, YYYY-MM-DD, day of week ): ' . $sCurrentDate . "\n";
$iWeekOfTheYear = $date->format('W');// Week of the Year i.e. 19-Feb-2014 = 08
$iDayOfWeek = $date->format('w');// day of week for the current month i.e. 19-Feb-2014 = 4
$iDayOfMonth = $date->format('d'); // date of the month i.e. 19-Feb-2014 = 19
$iNoDaysAdd = 6;// number of days adding to get last date of the week i.e. 19-Feb-2014 + 6 days = 25-Feb-2014
$date->sub(new DateInterval("P{$iDayOfWeek}D"));// getting start date of the week
$sStartDateOfWeek = $date->format('Y-m-d');// getting start date of the week
$date->add(new DateInterval("P{$iNoDaysAdd}D"));// getting end date of the week
$sEndDateOfWeek = $date->format('Y-m-d');// getting end date of the week
$iWeekOfTheYearWeek = (string) $date->format('YW');//week of the year
$iWeekOfTheYearWeekWithPeriod = (string) $date->format('Y-W');//week of the year with year
//To check uncomment
#echo "Start Date / End Date of Current week($iWeekOfTheYearWeek), week with - ($iWeekOfTheYearWeekWithPeriod) : " . $sStartDateOfWeek . ',' . $sEndDateOfWeek . "\n";
$iDaysAgo = ($iWeeksAgo*7) + $iNoDaysAdd + $sWeekDayStartOn;// getting 4 weeks ago i.e. no. of days to substract
$date->sub(new DateInterval("P{$iDaysAgo}D"));// getting 4 weeks ago i.e. no. of days to substract
$sStartDateOfWeekAgo = $date->format('Y-m-d');// getting 4 weeks ago start date i.e. 19-Jan-2014
$date->add(new DateInterval("P{$iNoDaysAdd}D")); // getting 4 weeks ago end date i.e. 25-Jan-2014
$sEndDateOfWeekAgo = $date->format('Y-m-d');// getting 4 weeks ago start date i.e. 25-Jan-2014
$iProccessedWeekAgoOfTheYear = (string) $date->format('YW');//ago week of the year
$iProccessedWeekOfTheYearWeekAgo = (string) $date->format('YW');//ago week of the year with year
$iProccessedWeekOfTheYearWeekWithPeriodAgo = (string) $date->format('Y-W');//ago week of the year with year
//To check uncomment
#echo "Start Date / End Date of week($iProccessedWeekOfTheYearWeekAgo), week with - ($iProccessedWeekOfTheYearWeekWithPeriodAgo) ago: " . $sStartDateOfWeekAgo . ',' . $sEndDateOfWeekAgo . "\n";
$aWeeksDetails = array ('weeksago' => $iWeeksAgo, 'currentweek' => $iWeekOfTheYear, 'currentdate' => $sCurrentDate, 'startdateofcurrentweek' => $sStartDateOfWeek, 'enddateofcurrentweek' => $sEndDateOfWeek,
'weekagoyearweek' => $iProccessedWeekAgoOfTheYear, 'startdateofagoweek' => $sStartDateOfWeekAgo, 'enddateofagoweek' => $sEndDateOfWeekAgo);
return $aWeeksDetails;
}
?>
/*
This is function has written to get (N) weeks ago start date of week and end date of the week
Note: Required PHP version 5.3 or greater
Current Date : 19-Feb-2014
Input : Start Date / End Date of Current week(201408), week with - (2014-08) current : 2014-02-16,2014-02-22
Expected Output : Start Date / End Date of week(201403), week with - (2014-03) 5 ago: 2014-01-12,2014-01-18
Result :
Array(
[currentweek] => 08
[currentdate] => 08, 2014-02-19, 3
[startdateofcurrentweek] => 2014-02-16
[enddateofcurrentweek] => 2014-02-22
[weekago] => 201403
[startdateofagoweek] => 2014-01-12
[enddateofagoweek] => 2014-01-18)
*/
$iWeeksAgo = 5;// need weeks ago
$sWeekDayStartOn = 0;// 0 - Sunday, 1 - Monday, 2 - Tuesday
$aWeeksDetails = getWeekDetails($iWeeksAgo, $sWeekDayStartOn);
print_r($aWeeksDetails);
die('end of line of getWeekDetails ');
function getWeekDetails($iWeeksAgo, $sWeekDayStartOn){
$date = new DateTime();
$sCurrentDate = $date->format('W, Y-m-d, w');
#echo 'Current Date (Week of the year, YYYY-MM-DD, day of week ): ' . $sCurrentDate . "\n";
$iWeekOfTheYear = $date->format('W');// Week of the Year i.e. 19-Feb-2014 = 08
$iDayOfWeek = $date->format('w');// day of week for the current month i.e. 19-Feb-2014 = 4
$iDayOfMonth = $date->format('d'); // date of the month i.e. 19-Feb-2014 = 19
$iNoDaysAdd = 6;// number of days adding to get last date of the week i.e. 19-Feb-2014 + 6 days = 25-Feb-2014
$date->sub(new DateInterval("P{$iDayOfWeek}D"));// getting start date of the week
$sStartDateOfWeek = $date->format('Y-m-d');// getting start date of the week
$date->add(new DateInterval("P{$iNoDaysAdd}D"));// getting end date of the week
$sEndDateOfWeek = $date->format('Y-m-d');// getting end date of the week
$iWeekOfTheYearWeek = (string) $date->format('YW');//week of the year
$iWeekOfTheYearWeekWithPeriod = (string) $date->format('Y-W');//week of the year with year
//To check uncomment
#echo "Start Date / End Date of Current week($iWeekOfTheYearWeek), week with - ($iWeekOfTheYearWeekWithPeriod) : " . $sStartDateOfWeek . ',' . $sEndDateOfWeek . "\n";
$iDaysAgo = ($iWeeksAgo*7) + $iNoDaysAdd + $sWeekDayStartOn;// getting 4 weeks ago i.e. no. of days to substract
$date->sub(new DateInterval("P{$iDaysAgo}D"));// getting 4 weeks ago i.e. no. of days to substract
$sStartDateOfWeekAgo = $date->format('Y-m-d');// getting 4 weeks ago start date i.e. 19-Jan-2014
$date->add(new DateInterval("P{$iNoDaysAdd}D")); // getting 4 weeks ago end date i.e. 25-Jan-2014
$sEndDateOfWeekAgo = $date->format('Y-m-d');// getting 4 weeks ago start date i.e. 25-Jan-2014
$iProccessedWeekAgoOfTheYear = (string) $date->format('YW');//ago week of the year
$iProccessedWeekOfTheYearWeekAgo = (string) $date->format('YW');//ago week of the year with year
$iProccessedWeekOfTheYearWeekWithPeriodAgo = (string) $date->format('Y-W');//ago week of the year with year
//To check uncomment
#echo "Start Date / End Date of week($iProccessedWeekOfTheYearWeekAgo), week with - ($iProccessedWeekOfTheYearWeekWithPeriodAgo) ago: " . $sStartDateOfWeekAgo . ',' . $sEndDateOfWeekAgo . "\n";
$aWeeksDetails = array ('weeksago' => $iWeeksAgo, 'currentweek' => $iWeekOfTheYear, 'currentdate' => $sCurrentDate, 'startdateofcurrentweek' => $sStartDateOfWeek, 'enddateofcurrentweek' => $sEndDateOfWeek,
'weekagoyearweek' => $iProccessedWeekAgoOfTheYear, 'startdateofagoweek' => $sStartDateOfWeekAgo, 'enddateofagoweek' => $sEndDateOfWeekAgo);
return $aWeeksDetails;
}
?>