Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
date () devuelve el número de semana incorrecto para el primer día del año

De alguna manera, el valor de retorno de la función date() no tiene sentido aquí. ¿Alguien sabe por qué?

Tal vez me estoy perdiendo algo, pero de acuerdo con el Manual de PHP, lo siguiente no tiene sentido:

 echo date('W', strtotime("2021-01-01"));

producción:

 53

¿No debería estar el primer día del año en la semana 01? Otras fechas parecen estar rotas también (por ejemplo 2021-01-05 regresando 01 ). Revisé la salida de strtotime() pero la marca de tiempo de UNIX parece ser correcta. ¿Que me estoy perdiendo aqui?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Documento de formato DateTime de PHP:

W - ISO-8601 número de semana del año, semanas a partir del lunes

Definición ISO-8601 de la primera semana del año:

Las semanas comienzan el lunes y terminan el domingo. El año de cada semana es el año gregoriano en el que cae el jueves. La primera semana del año, por lo tanto, siempre contiene el 4 de enero .

devuelve 53 porque el 01/01/2021 está en la semana 53 del año 2020.

Si lo haces

 echo date('W', strtotime("2021-01-04")); // first Monday of year 2021

volverá 01

over 4 years ago · Santiago Trujillo Denunciar

0

¿No debería estar el primer día del año en la semana 01?

Como dijo @catcon, no.

Para responder a tu comentario,

Esto es correcto, pero ¿tiene un ejemplo de cómo obtener el número de semana correcto para el año calendario? En este caso 1 para 2021-01-01

 z = The day of the year (starting from 0) 0 through 365

A partir de ahí, obtenga el día del año, reste de 365 o 366, divida por 7, reste de semanas en un año (365/7).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda