Jak Mogę uzyskać czas lokalny w jQuery?
Używam jQuery i potrzebuję czasu lokalnego dla Niemiec.
Każdy odwiedzający moją stronę z dowolnego kraju powinien wiedzieć, która jest godzina w Niemczech.
Jeśli czas jest między 0:00 a 12: 00 muszę zrobić alert czytania: "dzień dobry".
Jeśli czas jest między 12:00 a 17: 00 muszę zrobić Alert czytania: "dzień dobry".
Jak zaimplementować to w jQuery?
3 answers
Możesz uzyskać lokalne przesunięcie strefy czasowej klienta, aby uzyskać Czas GMT, a następnie dodać przesunięcie godzin strefy czasowej Niemiec (Czas środkowoeuropejski GMT+1):
function getDate(offset){
var now = new Date();
var hour = 60*60*1000;
var min = 60*1000;
return new Date(now.getTime() + (now.getTimezoneOffset() * min) + (offset * hour));
}
//...
var dateCET = getDate(1); // Central European Time is GMT +1
if (dateCET.getHours() < 12) {
alert ("Good morning.");
} else {
alert ("Good afternoon.");
}
Update: zgadzam się z @ Josh, powyższy kod jest całkowicie zależny od klienta. Spróbujmy zrobić to lepiej:
$(document).ready(function(){
var timezone = "Europe/Berlin";
$.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?",
function(data){
if (data.hour < 12) {
alert ("Good morning in "+timezone);
} else {
alert ("Good afternoon in "+timezone);
}
})
});
Korzystamy teraz z JSONP do wykonywania żądań między domenami do serwera jsontime , Ten serwer udostępnia kompletne API JSON do zapytań o czas i strefę czasową informacje.
Możesz grać z kodem tutaj i możesz przeglądać JSONP API tutaj .
Hurra!, brak kodu po stronie serwera!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-31 04:45:30
Czy chcesz uzyskać czas w Niemczech, lub czas dla strefy czasowej użytkownika, gdziekolwiek są? Jeśli to ostatnie, funkcja Date()
domyślnie działa w lokalnej strefie czasowej.
var d = new Date(); // defaults to the current time in the current timezone
if (d.getHours() < 12) {
alert ("Good morning.");
} else {
alert ("Good afternoon.");
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-19 03:22:54
Musisz wprowadzić datę / czas z serwera www do ukrytego pola na stronie, a następnie możesz uzyskać do niego dostęp za pomocą jQuery i załadować naturalny obiekt Javascript Date . Nie chcesz polegać na dacie/czasie po stronie klienta, ponieważ jest on poza Twoją kontrolą i może być ustawiony na coś skandalicznego. Zaufaj mi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-31 04:11:27