>웹 프론트엔드 >JS 튜토리얼 >문자열 표현을 사용하지 않고 특정 시간대를 사용하여 JavaScript 날짜 개체를 어떻게 만들 수 있습니까?

문자열 표현을 사용하지 않고 특정 시간대를 사용하여 JavaScript 날짜 개체를 어떻게 만들 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-23 16:13:45671검색

How Can I Create a JavaScript Date Object with a Specific Timezone Without Using String Representations?

특정 시간대를 사용하여 날짜 개체 생성

웹 애플리케이션에서는 드롭다운이나 입력 필드를 통해 사용자로부터 날짜 및 시간 정보를 수집하는 것이 일반적입니다. 그러나 숫자 값으로 JavaScript 날짜 객체를 생성하면 특히 데이터가 직렬화 및 역직렬화될 때 시간대 문제가 발생할 수 있습니다.

문제: 현재 시간대의 날짜 객체

다음 코드를 고려하세요.

new Date(xiYear, xiMonth, xiDate);

지정된 연도, 월, 일을 기준으로 Date 객체를 생성하는 코드입니다. 그러나 이는 사용자의 현재 시간대를 가정하므로 애플리케이션이 다른 시간대를 사용하는 경우 불일치가 발생할 수 있습니다.

해결책: UTC 시간 설정

시간대를 사용하지 않고 특정 시간대에 Date 객체를 생성하려면 문자열 표현을 사용하려면 다음 단계를 따르세요.

  1. 다음에서 Date 개체를 만듭니다. UTC 값:

    const utcDate = new Date(Date.UTC(xiYear, xiMonth, xiDate));
  2. 원하는 시간대 설정:

    utcDate.setUTCHours(utcDate.getUTCHours() + timezoneOffset);

timezoneOffset은 어디에 있습니까? 사용자 시간대와 UTC 간의 차이( 시간).

예를 들어, 사용자의 시간대가 GMT 01:00이고 원하는 날짜가 4월 5일인 경우:

const xiYear = 2023;
const xiMonth = 3; // April is 0-indexed
const xiDate = 5;
const timezoneOffset = 1;

const utcDate = new Date(Date.UTC(xiYear, xiMonth, xiDate));
utcDate.setUTCHours(utcDate.getUTCHours() + timezoneOffset);

console.log(utcDate.toLocaleString()); // Output: "Apr 5, 2023, 2:00:00 AM GMT+01:00"

이 접근 방식은 문자열 표현이나 장황한 코드에 의존하지 않고 원하는 시간대에 날짜 객체가 생성됩니다.

위 내용은 문자열 표현을 사용하지 않고 특정 시간대를 사용하여 JavaScript 날짜 개체를 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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