Cambiare un'immagine di sfondo in base alla stagione รจ qualcosa che io francamente reputo come un residuo del dilettantismo imperante negli anni '90 e che quindi non ritengo degno di un sito moderno. Ad ogni modo, i clienti potrebbero richiederlo. Ecco come fare con JavaScript e jQuery.
Definiamo una funzione di utility che restituisca il valore numerico del giorno corrente:
var getDayOfYear = function(dateObject) {
var year = dateObject.getFullYear();
var month = dateObject.getMonth();
var day = dateObject.getDate();
var d1 = new Date(year, 0, 1, 12, 0, 0); // 12:00 1 Gennaio
var d2 = new Date(year, month, day, 12, 0, 0); // 12:00 data di input
var diff = Math.round((d2-d1) / 864e5);
return diff + 1;
};
Quindi calcoliamo la stagione in base a tale valore numerico raffrontato col valore complessivo dato dai 365 giorni dell'anno:
var currentDate = new Date();
var currentDateNum = getDayOfYear(currentDate);
var season = '';
if(currentDateNum < 79) {
season = 'winter';
} else if(currentDateNum < 171) {
season = 'spring';
} else if(currentDateNum < 265) {
season = 'summer';
} else if(currentDateNum < 354) {
season = 'autumn';
} else {
season = 'winter';
}
$('#test').addClass(season);
Ad ogni classe CSS, ovviamente, va assegnata una diversa immagine di sfondo.