Los secretos ocultos de strtotime() en PHP

strtotime PHP

Todo el mundo tiene presente la función date() de PHP que con la cantidad de modificadores que tiene para los parámetros de formato da mucho de si!

Pero es que combinado con las cadenas de caracteres que podemos ir poniendo a la función strtotime, entonces ya es que casi puedes hacer todo.

Es relativamente fácila saber el dia de la semana que corresponde la fecha de hoy: date(“w”) o bien en que semana del año esta la fecha de hoy: date(“W”) y otros modificadores que tenéis en date() pero los de strtotime() también dan mucho juego!

Me pasó que debía buscar el dia exacto correspondiente al año anterior de una fecha dada. Pero considero como exacto el día que correspondió a la semana #n y dia #d. Por ejemplo el dia de la fecha de publicación de este post fue el 15/5/2015 que corresponde a la semana 20 del año 2015 y como es viernes pues la pregunta es: qué dia era el viernes de la semana 20 del año 2014? pues fue el 16/5/2014 y cómo puedo resolver en un algoritmo esto? Yo hice esto:

Os explico: siendo $fecha la fecha de hoy…(2015-5-15) Tiro de fecha standar mySQl espero que no os importe 🙂

  1. Calculo el dia de la semana en la primera variable (5)
  2. Calculo en qué semana estamos del año. (20)
  3. Muy fácil saber el año anterior a la fecha de hoy! (2014). Fijaros que ya el strtotime se le puede añadir un literal com “-1 year” por lo que podéis deducir que se usa para +/- year, month, day si quisieráis saber dias, meses o años antes (con el signo “-“) o después (con el signo “+”)
  4. Pero la verdadera maravilla, que lo encontré en un lugar profundo del manual de php y como ejemplo dentro de strtotime() fue la linea posterior fijaros como se monta una fecha poniendo “-W” entendiendo que no ha de poner el mes en curso sino el mes que corresponde a la semana 20 del año anterior! y continua poniendo el día corriente correspondiente al día de la semana indicado. de formas literal pues seria un date(“Y-m-d”,strtotime(‘2014-W20-5″)). Veréis que la fecha es 2014-5-16

Siempre busco antes en foros españoles de php todo esto, pero la verdad este supuesto no lo he necesitado hasta ahora y cuando lo necesito me ha costado encontrarlo. Pues bien espero que si alguien lo necesita no le cueste tanto encontrarlo (señal que está aquí :-))

 

Etiquetas: , , , ,

Entradas relacionadas

Deja un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada.




Top