online numero normal milisegundos fecha convertir php strtotime strftime mktime

php - numero - convertir timestamp a fecha



¿Cómo convertir el número de la semana y el año en la marca de tiempo Unix? (3)

Estoy tratando de agrupar las fechas en un número de semana y año, y luego quiero convertir ese número de semana de nuevo en una marca de tiempo de Unix. ¿Cómo puedo hacer esto?


strtotime(''1/1/2011 + 4 weeks'') (1/1 siempre está en la semana número uno; esto me llevaría a la semana número cinco). Si desea una marca de tiempo en la semana, eso es todo lo que necesita, de lo contrario, tendría que ir al lunes de esta semana:

$t = strtotime(''1/1/2011 + 4 weeks''); $t -= 24 * 60 * 60 * date(''w'', $t);

Actualización : en lugar del 1/1/2011 use el primer lunes de 2011. El segundo cálculo ya no es necesario.


Supongo que está utilizando los números de la semana ISO 8601 y desea el primer día de una semana ISO 8601 para que, por ejemplo, la Week 1 of 2011 regrese January 3 2011 .

strtotime puede hacer esto fuera de la caja usando el {YYYY}W{WW} :

echo date("Y-m-d", strtotime("2011W01")); // 2011-01-03

Tenga en cuenta que el número de la semana debe ser de dos dígitos.

Vergonzosamente, DateTime::createFromFormat , la nueva forma elegante de PHP 5 de tratar con fechas, parece incapaz de analizar este tipo de información, no tiene un marcador de posición de "semana".


  • $week : el número de la semana
  • $year : el número del año

Entonces:

$timestamp = gmmktime (0, 0 , 0 , 1, , 4 + 7*($week - 1), $year);

El 4 + 7*($week - 1) proviene del hecho de que, según la norma ISO 8601 , la primera semana del año es la que contiene el 4 de enero.