>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `Date` 객체가 때때로 날짜를 잘못 표시하는 이유는 무엇입니까?

JavaScript의 `Date` 객체가 때때로 날짜를 잘못 표시하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-20 03:31:09251검색

Why Does JavaScript's `Date` Object Sometimes Get the Date Wrong?

JavaScript Date 객체의 기묘한 익살: 하루 쉬는 것이 당연할 때

JavaScript에서 Date 객체는 당황스러울 수 있습니다. 문자열을 변환할 때의 동작입니다. 겉보기에 무해해 보이는 날짜 형식인 "2011-09-24"를 고려해 보세요.

Date 생성자에 인수로 전달되는 경우:

var date = new Date("2011-09-24");

결과가 예상과 다를 수 있습니다. 개체는 2011년 9월 24일을 나타내는 대신 하루 전 날짜를 기록합니다.

console.log(date);
// Fri Sep 23 2011 20:00:00 GMT-0400 (Eastern Daylight Time)

The Array of "Crazy" Occurrences

이 불일치는 일련의 혼란 속에서 빙산의 일각 동작:

  • 월-일-년 형식: 놀랍게도 순서를 "09-24-2011"로 다시 정렬하면 올바른 날짜가 생성됩니다.
  • 슬래시와 하이픈: 날짜 구성 요소를 구분하는 대시("-")도 불일치. 슬래시("/")로 변경하면 문제가 해결됩니다.
  • 시간대: 날짜 변환은 사용자의 시간대와 현재 시간에 따라 달라질 수 있습니다.
  • 별도의 생성자 인수: 생성자에 별도의 숫자 인수를 제공하면 다음과 같은 다른 유용한 출력을 얻을 수 있습니다. 특정 월 또는 연도의 첫날 또는 마지막 날.

비하인드 스토리 이해

이러한 단점은 복잡한 내부 메커니즘에서 비롯됩니다. 날짜 객체. 문자열을 변환할 때 개체는 현재 로케일 및 시간대 설정을 기반으로 문자열을 해석하려고 시도합니다. 이 프로세스에서는 미묘하고 예상치 못한 변형이 발생할 수 있습니다.

실용적인 솔루션

이러한 함정을 피하려면 다음 기술을 고려하십시오.

  • 일관된 형식: 표준화된 날짜 형식을 사용하여 다양한 항목에서 일관된 동작을 보장합니다. 플랫폼.
  • 문자열 조작: 원하는 결과를 생성하는 형식과 일치하도록 날짜 문자열을 변경합니다(예: 하이픈을 슬래시로 대체).
  • 별도의 생성자 인수: 특정 항목을 얻는 데 더 큰 제어력과 유연성을 위해 Date 생성자에 별도의 숫자 인수를 활용합니다. 날짜.

이러한 기이함을 이해하면 JavaScript Date 개체의 복잡성을 자신있게 탐색할 수 있습니다. 이러한 특성은 때때로 비논리적으로 보일 수 있지만 도구의 필수적인 부분이며 올바른 지식을 통해 이점을 활용할 수 있다는 점을 기억하십시오.

위 내용은 JavaScript의 `Date` 객체가 때때로 날짜를 잘못 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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