Przyjęta odpowiedź nie kpi naprawdę z metody Date.getTimezoneOffset
, zamiast tego oczekuje użycia innej metody o tej samej nazwie.
Nie będzie działać na obiektach Date, a jak zauważy Carl Meyer, nie będzie działać dla bibliotek takich jak MomentJS.
Lepszym sposobem jest przesłonięcie metody getTimezoneOffset
na prototypie Date
, tak aby wszystkie wystąpienia Date
miały zastąpioną metodę.
d = new Date(); // Mon Jul 13 2015 10:58:12 GMT+0200 (CEST)
alert(d.getTimezoneOffset()); // -120, My local "real" timezone.
// Save the original method.
var getTimezoneOffset = Date.prototype.getTimezoneOffset;
Date.prototype.getTimezoneOffset = function() {
return 160;
}
// Now Date objects will have the mocked timezone offset
alert(d.getTimezoneOffset()); // 160, The mocked timezone.
// Now restore the method to its original version
Date.prototype.getTimezoneOffset = getTimezoneOffset;
alert(d.getTimezoneOffset()); // -120
Zmień strefę czasową na komputerze. Tam właśnie przegląda przeglądarka. –
Możesz także uruchomić przeglądarkę za pomocą innego TZ: http://stackoverflow.com/questions/11453740/fake-time-zone-for-web-app-testing –