2010-02-12 13 views
10

Im volendo applicare diversi fogli CSS al mio sito in base al momento del browser. ad esempio, se è giorno, visualizza day.css o night.css per notte.Come determinare se è giorno o notte in javascript o jquery?

Posso farlo con PHP ma si basa sul tempo del server, non sull'ora locale del browser.

C'è un modo per dire l'ora in javascript? Probabilmente userò jQuery per avviare semplicemente il css una volta che ha funzionato.

+4

Non è necessario javascript per questo compito. Basta andare di sopra e aprire le tende. –

+0

Puoi ancora farlo in PHP in base ai client local-time .... ma dovrai utilizzare una sorta di IP per il servizio di localizzazione, che non è completamente affidabile. – mpen

+0

Questa è una grande domanda e forse una grande funzionalità, ma c'è una possibilità che questo possa andare in tilt. Ho usato i computer in precedenza che hanno orari impostati in modo errato (come l'ora è lontana). Uno di questi è stato con Vista: dopo averlo sincronizzato con gli orologi di Internet, è tornato. Pertanto, potrebbero esserci casi in cui potresti interpretare erroneamente i dati. Bene, ci possono essere casi in cui i dati non sono corretti. Se questo è più sul tema e non ti interessa davvero se non è corretto in alcuni casi, certamente andare avanti, ma in caso contrario, potresti non volerlo. Non so cosa farei. In bocca al lupo! –

risposta

22
var hr = (new Date()).getHours(); //get hours of the day in 24Hr format (0-23) 

A seconda della definizione di giorno/notte, eseguire la tua magia :)

PS: Se il vostro giorno/notte non inizia all'ora esatta, si può provare getMinutes().

2
(new Date).getHours() 

otterrà l'ora locale del tempo (0-23) del client. Sulla base di quel valore, scambia il foglio di stile per la pagina. Imposterei il foglio di stile del giorno come predefinito e lo sostituirò quando necessario.

Il mio pensiero iniziale è che si desidera eseguire questa operazione il prima possibile sul client per evitare qualsiasi potential browser reflow.

0

Io uso questa logica:

const hours = new Date().getHours() 
const isDayTime = hours > 6 && hours < 20 
Problemi correlati