<?php
/**
* Función para saber el numero de semanas que tiene un año dado
*/
function NumeroSemanasTieneUnAno($year)
{
$date = new DateTime;
# Establecemos la fecha segun el estandar ISO 8601 (numero de semana)
$date->setISODate($year, 53);
# Si estamos en la semana 53 devolvemos 53, sino, es que estamos en la 52
if($date->format("W")=="53")
return 53;
else
return 52;
}
for($i=2000;$i<=2020;$i++)
{
echo "<br>".$i." - ".NumeroSemanasTieneUnAno($i);
}
?>
Comentarios sobre la versión: Versión 1 (3)
ano=$_GET['ano'];
function NumeroSemanasTieneUnAno($ano){
$date = new DateTime;
# Establecemos la fecha segun el estandar ISO 8601 (numero de semana)
$date->setISODate("$ano", 53);
# Si estamos en la semana 53 devolvemos 53, sino, es que estamos en la 52
if($date->format("W")=="53")
return 53;
else
return 52;
}
for($i=0;$i<1;$i++){
echo "<br>".$ano." - ".NumeroSemanasTieneUnAno($i);
}
function NumeroSemanasTieneUnAno($ano){
return date('W', strtotime("$ano-01-01 last week"));
}
La W te da el numero de semana (se puede consultar en la doc de php date)
Y "last week" te da la ultima semana de el $ano (se puede consultar en la doc de strtotime)
Saludos.