secondo me è necessario capire ogni quanto tempo deve cambiare il colore del background. Mettiamo che deve cambiare ogni ora allora il timeout va impostato ad 1 ora. Per sapere quante ora sono passate dal primo giugno 2016 puoi mantenere i calcoli che fai già ora, li inserisci in una funzione e questa funzione la richiami al caricamento della pagina e ogni ora tramite il setTimeout/setInterval.