>  기사  >  웹 프론트엔드  >  일광 절약 시간이 적용됩니까? JavaScript에서 DST를 정확하게 감지합니다.

일광 절약 시간이 적용됩니까? JavaScript에서 DST를 정확하게 감지합니다.

DDD
DDD원래의
2024-11-24 22:58:10694검색

Is Daylight Saving Time in Effect? Detecting DST Accurately in JavaScript.

JavaScript의 DST 감지: 정확한 날짜 조작을 위한 상태 확인

시간 표시나 날짜 조작 등 정확한 시간 계산이 필요한 상황에서는 중요하기 때문에 일광 절약 시간(DST)을 고려하는 것이 필수적입니다. 이러한 계절적 조정은 즉시 고려하지 않으면 시간 계산에 불일치가 발생할 수 있습니다.

이 문제를 해결하기 위해 특정 순간에 DST가 적용되는지 확인하는 JavaScript 코드 조각이 개발되었습니다. 핵심 논리는 getTimezoneOffset이 DST와 비교하여 표준시 동안 더 높은 값을 반환한다는 사실에 달려 있습니다. 표준시 동안 예상되는 오프셋을 결정하고 이를 주어진 날짜의 오프셋과 비교함으로써 표준시 또는 DST가 적용되고 있는지 확인할 수 있습니다.

getTimezoneOffset이 서쪽 시간대에 대해 양수 값을 반환한다는 점은 주목할 만합니다. UTC 및 UTC 동쪽의 음수 값입니다. 또한 오프셋은 일반적으로 시간 단위로 표시되는 반면, getTimezoneOffset은 오프셋을 분 단위로 반환합니다. 예를 들어 로스앤젤레스는 표준시 동안 UTC-8h이고 DST 동안 UTC-7h입니다. 12월에 getTimezoneOffset은 로스앤젤레스에 대해 480을 산출합니다(양수 480분).

다음 JavaScript 코드는 이 개념을 자세히 설명합니다.

Date.prototype.stdTimezoneOffset = function () {
    var jan = new Date(this.getFullYear(), 0, 1);
    var jul = new Date(this.getFullYear(), 6, 1);
    return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}

Date.prototype.isDstObserved = function () {
    return this.getTimezoneOffset() < this.stdTimezoneOffset();
}

var today = new Date();
if (today.isDstObserved()) { 
    alert ("Daylight saving time!");
}

이 코드는 DST가 현재 유효한지 여부를 확인합니다. 지정된 날짜와 표준시 예상 간의 getTimezoneOffset 차이에 대해 설명합니다. 이 논리를 활용하여 개발자는 일광 절약 시간제의 영향을 고려하면서 날짜와 시간을 정확하게 계산할 수 있습니다.

위 내용은 일광 절약 시간이 적용됩니까? JavaScript에서 DST를 정확하게 감지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.