<?php
function
weeks_per_year(
$year
) {
$start
=
strtotime
(
"{$year}-1-1 0:00:00"
);
$end
=
strtotime
(
"{$year}-12-31 24:00:00"
);
$days
= (
$end
-
$start
)/60/60/24;
$w_start
=
date
(
'w'
,
$start
);
if
(
$w_start
== 0)
$w_start
= 7;
$weeks
=
ceil
((
$w_start
- 1 +
$days
) / 7.0);
return
$weeks
;
}
function
week_start_end(
$year
) {
$start
=
strtotime
(
"{$year}-1-1 0:00:00"
);
$end
=
strtotime
(
"{$year}-12-31 24:00:00"
);
$w_start
=
date
(
'w'
,
$start
);
if
(
$w_start
== 0)
$w_start
= 7;
$curr
=
$start
;
$curr
+= (7-
$w_start
)*24*60*60;
$weeks
=
array
();
while
(
$curr
<=
$end
) {
$week
=
array
();
$curr
+= 1*24*60*60;
//week start
$week
[
'start'
] =
date
(
'n-j'
,
$curr
);
$curr
+= 6*24*60*60;
//week end
$week
[
'end'
] =
date
(
'n-j'
,
$curr
);
$weeks
[] =
$week
;
}
return
$weeks
;
}
echo
weeks_per_year(2012);
$weeks
= week_start_end(2015);
var_dump(
$weeks
);
?>