허용되는 대답은 실제로 Date.getTimezoneOffset
메서드를 모의하지 않으며, 대신 동일한 이름을 가진 다른 메서드를 사용하기를 기대합니다.
Date 객체 자체에서는 작동하지 않으며 Carl Meyer가 지적했듯이 MomentJS와 같은 라이브러리에서는 작동하지 않습니다.
Date
프로토 타입의 getTimezoneOffset
메서드를 재정 의하여 더 이상 Date
의 모든 인스턴스에 재정의 된 메서드가 포함되도록하는 것이 가장 좋습니다.
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
컴퓨터의 시간대를 변경하십시오. 바로 브라우저가 그것을 얻습니다. –
다른 TZ로 브라우저를 시작할 수도 있습니다. http://stackoverflow.com/questions/11453740/fake-time-zone-for-web-app-testing –