La respuesta aceptada no se burla realmente del método Date.getTimezoneOffset
, en su lugar, espera que utilice un método diferente con el mismo nombre.
No funcionará en los objetos Date y, como señala Carl Meyer, no funcionará para bibliotecas como MomentJS.
Una mejor manera es anular el método getTimezoneOffset
en el prototipo Date
, por lo que todas las instancias de Date
tienen el método reemplazado.
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
Cambie la zona horaria en su computadora. Ahí es donde lo consigue el navegador. –
También podría iniciar su navegador con un TZ diferente: http://stackoverflow.com/questions/11453740/fake-time-zone-for-web-app-testing –