PHP: ¿Cuántos días faltan para Navidad?

Perro de NavidadTenemos un cliente que tiene un especial que solo es válido hasta Navidad y la configuración de los días hasta el vencimiento está en un campo guardado en la base de datos.

Necesitaba escribir un trabajo cron (trabajo programado) que actualice el campo para cada uno de sus restaurantes todas las noches. Nunca había escrito ningún trabajo cron antes, gracias a mi colega, Tim, en Imavex por guiarme en la dirección correcta. Incluso me lo envié por correo electrónico por la mañana para informarme que fue exitoso.

De todos modos, pensé que ya que había escrito el código de todos modos, podría compartir la diversión y entregárselo a ustedes:

$ mes = 12;
$ día = 25;
$ año = fecha ("Y");
$ días = (int) ((mktime (0,0,0, $ mes, $ día, $ año) - tiempo (void)) / 86400);
if ($ días> 0) {
$ año = $ año + 1;
$ días = (int) ((mktime (0,0,0, $ mes, $ día, $ año) - tiempo (void)) / 86400);
}
cambiar ($ días) {
caso 0:
echo "¡Feliz Navidad!";
break;
caso 1:
echo "¡Es Nochebuena!";
break;
por defecto:
echo "Hay". $ días. "¡Más días hasta Navidad!";
}

Tenga cuidado con copiar y pegar desde la publicación, a veces los apóstrofos se estropean. Si tiene WordPress, podría insertarlo en el código de su página y hacer que se muestre. No estoy seguro de que todo el mundo esté emocionado porque solo faltan 48 días para Navidad, pero ¡qué diablos!

Si quisiera, incluso podría construir la declaración del caso y hacer los 12 días de Navidad. 🙂

Este código también tiene en cuenta el año, por lo que el próximo año seguirá funcionando.

4 Comentarios

  1. 1
  2. 3

    Hola Doug,

    Gracias por este fragmento de código. 🙂 Estoy tratando de ponerlo en la barra lateral de mi blog como un widget. Pegué el código y solo muestra código sin formato en la página. No siendo un asistente de php. ¿Hay alguna forma “simple” de hacer que funcione?

    Gracias,
    Dan

¿Qué piensas?

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.