programing

JavaScript에서 날짜를 MM/dd/yyyy로 형식 지정

muds 2023. 8. 4. 23:20
반응형

JavaScript에서 날짜를 MM/dd/yyyy로 형식 지정

다음과 같은 날짜 형식이 있습니다.'2010-10-11T00:00:00+05:30'로 포맷해야 합니다.MM/dd/yyyyJavaScript 또는 jQuery를 사용합니다.누구든 저를 도와주세요.

이 방법을 사용해 보십시오. JavaScript 월은 0으로 인덱싱되고 일은 1로 인덱싱됩니다.

var date = new Date('2010-10-11T00:00:00+05:30');
    alert(((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear());

일부 답변은 문제를 제대로 해결하지 못합니다.그들은 mm/dd/yyyy로 포맷된 날짜를 인쇄하지만 질문은 MM/dd/yyyy에 관한 것이었습니다.미묘한 차이를 눈치채셨나요?MM은 달이 한 자리 숫자인 경우 선행 0이 달을 패딩해야 하므로 항상 두 자리 숫자로 표시됩니다.

즉, mm/dd는 3/31이고 MM/dd는 03/31입니다.

저는 이것을 달성하기 위해 간단한 기능을 만들었습니다.월뿐만 아니라 월의 날짜에도 동일한 패딩이 적용되므로 실제로 MM/DD/yyyy:

function getFormattedDate(date) {
  var year = date.getFullYear();

  var month = (1 + date.getMonth()).toString();
  month = month.length > 1 ? month : '0' + month;

  var day = date.getDate().toString();
  day = day.length > 1 ? day : '0' + day;
  
  return month + '/' + day + '/' + year;
}


String.padStart()를 사용한 ES2017용 업데이트로 IE를 제외한 모든 주요 브라우저에서 지원됩니다.

function getFormattedDate(date) {
    let year = date.getFullYear();
    let month = (1 + date.getMonth()).toString().padStart(2, '0');
    let day = date.getDate().toString().padStart(2, '0');
  
    return month + '/' + day + '/' + year;
}

ISO 호환 dateString

dateStringRFC282ISO8601을 준수하는 경우:
날짜 생성자에 문자열을 전달합니다.그런 다음 원하는 날짜 출력 형식으로 지정하려면 Intl을 사용합니다.날짜 시간 형식은 다음과 같습니다.

const dateString = "2020-09-30T12:52:27+05:30"; // ISO8601 compliant dateString
const date = new Date(dateString); // {object Date}            

const dateFormatted = new Intl.DateTimeFormat("en-US", {
  year: "numeric",
  month: "2-digit",
  day: "2-digit"
}).format(date);

console.log(dateFormatted); // "09/30/2020"

또는 Date Getters를 사용하여 원하는 값을 추출할 수 있습니다.

date.getMonth() + 1  // 9   (PS: use +1 since Month returns 0-based index)
date.getDate()       // 30
date.getFullYear()   // 2020

위의 예에서는 필요한 경우 String.prototype.padStart를 사용하여 월 및 날짜의 선행 0을 추가할 수도 있습니다.


비표준 날짜 문자열

비표준 날짜 문자열인 경우:
문자열을 알려진 부분으로 분해한 다음 변수를 날짜 생성자에 전달합니다.

날짜(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]])

const dateString = "30/09/2020 12:52:27"; // Not ISO8601 compliant
const [d, M, y, h, m, s] = dateString.match(/\d+/g);

// PS: M-1 since Month is 0-based
const date = new Date(Date.UTC(y, M-1, d, h, m, s));  // {object Date}

const dateFormatted = new Intl.DateTimeFormat("en-US", {
  year: "numeric",
  month: "2-digit",
  day: "2-digit"
}).format(date);

console.log(dateFormatted); // "09/30/2020"

언급URL : https://stackoverflow.com/questions/11591854/format-date-to-mm-dd-yyyy-in-javascript

반응형