22 Votos

PHP: Año incorrecto para la primera Semana Natural

Pregunta de Compi | 11/04/2024 a las 00:41

En PHP, es posible determinar la semana natural (número de semana) usando la función date() y el marcador de posición "W".

Por ejemplo, este código debería proporcionarme el número de la semana del año actual como resultado:

echo 'semana ', date('W', time()), ', ', date('Y', time());  

Con time() obtengo la hora actual, con "W" obtengo el número de la semana y con "Y" el año - el resultado debería ser algo así como "semana 5, 2024".

Sin embargo, desafortunadamente, esta solución no funciona en el caso de que la primera semana calendario caiga en el año anterior o la última semana del año caiga en el año nuevo. Por ejemplo, 2016-01-01 da como resultado "semana 53, 2016" y no "semana 53, 2015" como se esperaba - el año siempre es incorrecto en este período de transición.

¿Qué puedo hacer para que esta función funcione también el 31 de diciembre y el 1 de enero?

ResponderPositivoNegativo
2Mejor Respuesta2 Votos

Cuando se usa "Y", el año siempre corresponde al año de la fecha que pasas con el segundo parámetro a la función date(). Por lo tanto, para el número de la semana natural está disponible adicionalmente el comodín propio "o".

Entonces, debes modificar tu código de la siguiente manera:

echo 'semana ', date('W', time()), ', ', date('o', time());

He descrito más sobre esto en mi tutorial sobre cómo determinar el número de semana calendario con PHP.
11/04/2024 a las 02:41

ResponderPositivo Negativo
Responder

Temas Relacionados

MySQL: Saltos de Línea en MySQL

Consejo | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.