>웹 프론트엔드 >JS 튜토리얼 >시간대 오프셋을 사용하여 ISO 8601에서 JavaScript 날짜 형식을 지정하는 방법은 무엇입니까?

시간대 오프셋을 사용하여 ISO 8601에서 JavaScript 날짜 형식을 지정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-28 12:28:11310검색

How to Format a JavaScript Date in ISO 8601 with Timezone Offset?

JavaScript에서 시간대 오프셋을 사용하여 ISO 8601 날짜 형식 지정

이 문서에서는 ISO에서 JS 날짜 형식을 지정하는 방법에 대한 일반적인 문제를 다룹니다. UTC로부터의 오프셋이 있는 8601 형식입니다. W3C 권장 사항에 따라 URL을 올바른 형식으로 지정하는 목표를 논의하는 것부터 시작합니다.

이 솔루션에는 일련의 단계가 포함됩니다.

  1. 로컬 가져오기 시간: 새로운 Date() 함수는 원하는 형식(예: "yyyy-MM-ddThh:mm:ss").
  2. UTC 시간 오프셋 계산: 현지 시간과 UTC 간의 차이를 계산하기 위해 getTimezoneOffset() 메서드가 호출됩니다. 그런 다음 결과를 60으로 나누어 오프셋을 시간 단위로 표현합니다.
  3. URL 구성: 현지 시간과 계산된 UTC 오프셋이 결합되어 원하는 기간을 나타내는 기간 문자열을 형성합니다. 시간대 오프셋이 포함된 ISO 8601 형식의 날짜(예: "2013-07-02T09:00:00-7:00").

그러나 getTimezoneOffset()의 음수 값을 어떻게 처리할지에 대한 의문이 생깁니다. 제공된 답변은 도우미 함수를 활용하여 이 문제를 해결합니다.

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),
      dif = tzo >= 0 ? '+' : '-',
      pad = function(num) {
          return (num < 10 ? '0' : '') + num;
      };

  return date.getFullYear() +
      '-' + pad(date.getMonth() + 1) +
      '-' + pad(date.getDate()) +
      'T' + pad(date.getHours()) +
      ':' + pad(date.getMinutes()) +
      ':' + pad(date.getSeconds()) +
      dif + pad(Math.floor(Math.abs(tzo) / 60)) +
      ':' + pad(Math.abs(tzo) % 60);
}

이 도우미 함수는 날짜를 인수로 사용하고 시간대 오프셋을 포함하여 올바른 형식의 ISO 8601 문자열을 반환합니다.

위 내용은 시간대 오프셋을 사용하여 ISO 8601에서 JavaScript 날짜 형식을 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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