[javascript] JavaScript의 월 및 날짜를 ​​2 자리 형식으로 얻으려면 어떻게합니까?

우리가 호출 할 때 getMonth()getDate()date객체, 우리는 얻을 것이다 single digit number. 예를 들면 다음과 같습니다.

에 대해 january표시 1되지만로 표시해야합니다 01. 그렇게하는 방법?



답변

("0" + this.getDate()).slice(-2)

날짜와 비슷한 :

("0" + (this.getMonth() + 1)).slice(-2)

그 달 동안.


답변

“YYYY-MM-DDTHH : mm : ss”와 같은 형식을 원하면 더 빠를 수 있습니다.

var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ

또는 일반적으로 사용되는 MySQL 날짜 / 시간 형식 “YYYY-MM-DD HH : mm : ss”:

var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');

이게 도움이 되길 바란다


답변

월의 예 :

function getMonth(date) {
  var month = date.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}  

Date이러한 기능으로 객체를 확장 할 수도 있습니다 .

Date.prototype.getMonthFormatted = function() {
  var month = this.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}


답변

이를 수행하는 가장 좋은 방법은 다음과 같이 간단한 포맷터를 만드는 것입니다.

getDate()반환 (1-31)에서 해당 월의 일
getMonth()(0-11에서) 월 반환 < 제로는, 0 = 1 월, 11 = 12 월
getFullYear() 년 반환 (네 자리 숫자) < 사용 안 함getYear()

function formatDateToString(date){
   // 01, 02, 03, ... 29, 30, 31
   var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
   // 01, 02, 03, ... 10, 11, 12
   var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
   // 1970, 1971, ... 2015, 2016, ...
   var yyyy = date.getFullYear();

   // create the format you want
   return (dd + "-" + MM + "-" + yyyy);
}


답변

왜 사용하지 padStart않습니까?

var dt = new Date();

year  = dt.getYear() + 1900;
month = (dt.getMonth() + 1).toString().padStart(2, "0");
day   = dt.getDate().toString().padStart(2, "0");

console.log(year + '/' + month + '/' + day);

월 또는 일이 10보다 작은 경우에도 항상 2 자리 숫자를 반환합니다.

노트:

  • 이것은 JS 코드가 babel을 사용하여 변환 된 경우 Internet Explorer에서만 작동합니다. 합니다.
  • getYear() 1900 년부터 연도를 반환하며 필요하지 않습니다 padStart .
  • getMonth() 월을 0에서 11까지 반환합니다.
    • 패딩 전 달에 1을 더하여 1에서 12로 유지
  • getDate() 1에서 31 사이의 요일을 반환합니다.
    • 일곱째 날이 돌아 07오므로 문자열을 채우기 전에 1을 추가 할 필요가 없습니다.

답변

다음은 삼항 연산자를 사용하여 db2 날짜 형식, 즉 YYYY-MM-DD를 변환하는 데 사용됩니다.

var currentDate = new Date();
var twoDigitMonth=((currentDate.getMonth()+1)>=10)? (currentDate.getMonth()+1) : '0' + (currentDate.getMonth()+1);
var twoDigitDate=((currentDate.getDate())>=10)? (currentDate.getDate()) : '0' + (currentDate.getDate());
var createdDateTo = currentDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate;
alert(createdDateTo);


답변

나는 이것을 할 것이다 :

var d = new Date('January 13, 2000');
var s = d.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' });
console.log(s); // prints 01/13/2000