Now 31st March and 1st April, both dates belong to 14th Week of the Year, but in Week of the Month Calculation 31st March will be 5th Week of March and 1st April will be 1st Week of April. There is no such format is available for PHP date() function , so we will calculate the Week of the Month Programmatically.
The Week of the Month can be determined by following equation
We can implement the equation in a PHP function as bellow
function getWeekOfTheMonth($dateTimestamp)
{
$d = date('j',$ dateTimestamp);
$w = date('w',$ dateTimestamp)+1; //add 1 because date returns value between 0 to 6
$dt= (floor($dayOfMonth % 7)!=0)? floor($dayOfMonth % 7) : 7;
$k = (($w-$dt) < style=""> $W= ceil(($dayOfMonth+$k)/7);
return $W ;
}
Now check the function with Test Cases.
For 07/03/2009 or 7th March 2009:
$dateTimestamp = mktime(0,0,0,3,7,2009);
echo getWeekOfTheMonth($dateTimestamp) ." week of ".date(F,$dateTimestamp);
and the o/p is
1 week of March
For 07/04/2009 or 7th April 2009
$dateTimestamp = mktime(0,0,0,4,7,2009);
echo getWeekOfTheMonth($dateTimestamp) ." week of ".date(F,$dateTimestamp);
and the o/p is
2 week of April
(c) Sourav Ray