sábado, 7 de enero de 2012

¿Qué día fue ayer? ¿Y hoy? ¿Y mañana?

La función date() permite darle formato a una fecha u hora. Como parámetro de formato se le puede pasar más de una veintena de opciones. Por ejemplo, la "l" ("L" minúscula) muestra el día de la semana en texto completo. Opcionalmente se le puede pasar otro parámetro, el timestamp. En caso de no existir, toma el valor de time ().
Entonces, al ejecutar el siguiente script:
<?php
echo "Hoy es ".date("l");
?>
el viernes 6 de enero de 2012, el resultado sería:


Si se usa la función date() en combinación con la función mktime(), se pueden calcular fechas futuras o pasadas:

<?php
$ayer=mktime(0,0,0,date("m"),date("d")-1,date("Y"));
$manana=mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "<div style='text-align:center;'>";
echo "<h3>Hoy es ".date('l d \d\e F \d\e Y')."</h3>";
echo "Ayer fue ".date('l d \d\e F \d\e Y',$ayer)."<br>";
echo "Ma&ntilde;ana ser&aacute; ".date('l d \d\e F \d\e Y',$manana)."</div>";
?>

Al ejecutar ese scritp el 6 de enero de 2012, el resultado es el siguiente:


Explico el script, línea por línea:
  1. Marca de apertura del script PHP
  2. Define la variable $ayer. La misma contiene la función mktime con los seis parámetros que recibe:
    1. hora
    2. minutos
    3. segundos
    4. mes
    5. día
    6. año
    Los tres primeros (hora, minutos, segundos) están en cero, pues no interesan para este script. Los demás llaman a la función date(), cada uno con un parámetro de formato distinto: "m" para el número del mes, "d" para el número del día y "Y" para el año con cuatro dígitos. Todos hacen referencia a la fecha en que se ejecuta el script, menos el día, ya que como dice date("d")-1, la variable $ayer guarda la información del día anterior al que se ejecuta el script.
  3. Es igual a la línea anterior, con la diferencia que como dice date("d")+1, la variable $manana guarda la información del día siguiente al que se ejecuta el script.
  4. Imprime en la pantalla una etiqueta HTML <div> para abrir una caja con un estilo en línea aplicado para que el texto que va a contener quede centrado.
  5. Imprime en la pantalla una etiqueta HTML de apertura de subtítulo <h3> y luego el texto Hoy es .
    Con el punto concatena el resultado de ejecutar la función date con los siguientes parámetros de formato:
    • l - para mostrar en forma textual en inglés el día de la semana.
    • d - para mostrar el número del día del mes.
    • \d\e - las barras invertidas son caracteres de escape, para conseguir que el caracter inmediatamente después de la barra no se procese y se muestre tal cual. Con esto se logra que en la pantalla se vea la palabra "de".
    • F - para mostrar el nombre del mes completo en inglés.
    • \d\e - lo mismo ya explicado dos líneas más arriba.
    • Y - para mostrar el año.
    Como no aplica un timestamp, usa el del momento en que se ejecuta el script
    Por último, concatena la etiqueta HTML de cierre del subtítulo </h3>.
  6. Hace algo muy similar a la línea anterior, pero, como le aplica un timestamp diferente, el resultado será otro. En este caso, el timestamp guardado en la variable $ayer que había sido definida en la línea 2.
  7. Lo mismo que la línea anterior, pero con la variable $manana definida en la línea 3.
  8. Marca de cierre del script PHP

Lecturas recomendadas

No hay comentarios:

Publicar un comentario

Gracias por el comentario.
Luego de ser sometido a moderación y si amerita, será publicado.