PHP: hoeveel dagen tot Kerstmis?

Kerst hondWe hebben een klant die een special heeft die alleen geldig is tot Kerstmis en de instelling voor de dagen tot de vervaldatum staat in een veld dat is opgeslagen in de database.

Ik moest een cron-taak (geplande taak) schrijven die het veld voor elk van hun restaurants elke nacht bijwerkt. Ik had nog nooit een script geschreven voor cron-taken - dankzij mijn collega, Tim, bij Iavex om me in de goede richting te leiden. Ik heb het zelfs 's ochtends een e-mail gekregen om me te laten weten dat het succesvol was.

Hoe dan ook, ik dacht, aangezien ik de code toch had geschreven, ik zou kunnen delen in het plezier en het naar jullie zou kunnen verspreiden:

$ maand = 12;
$ dag = 25;
$ jaar = datum ("Y");
$ dagen = (int) ((mktime (0,0,0, $ maand, $ dag, $ jaar) - tijd (void)) / 86400);
if ($ dagen> 0) {
$ jaar = $ jaar + 1;
$ dagen = (int) ((mktime (0,0,0, $ maand, $ dag, $ jaar) - tijd (void)) / 86400);
}
switch ($ dagen) {
geval 0:
echo "Vrolijk kerstfeest!";
te breken;
geval 1:
echo "It's Christmas Eve!";
te breken;
default:
echo "Er zijn". $ dagen. "meer dagen tot Kerstmis!";
}

Pas op voor kopiëren en plakken vanuit de post, soms raken de apostrofs in de war. Als u WordPress heeft, kunt u dit in de code van uw pagina invoegen en laten weergeven. Ik weet niet zeker of iedereen enthousiast is over het feit dat Kerstmis nog maar 48 dagen verwijderd is, maar wat maakt het uit!

Als je zou willen, zou je zelfs de casusverklaring kunnen uitbouwen en de 12 dagen van Kerstmis kunnen doen. 🙂

Deze code houdt ook rekening met het jaar, dus volgend jaar blijft het werken!

4 reacties

  1. 1
  2. 3

    Hallo Doug,

    Bedankt voor dit codefragment. 🙂 Ik probeer het als widget in de zijbalk van mijn blog te plaatsen. Ik heb de code geplakt en het toont alleen de onbewerkte code op de pagina .. Omdat ik geen php-wizard ben .. Is er een "eenvoudige" manier om het te laten werken?

    Hartelijk dank,
    Dan

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.