[javascript] getMinutes () 0-9-두 자리 숫자를 표시하는 방법?

var date = "2012-01-18T16:03";
var date = new Date(date);

console.log(date.getMinutes());
console.log(date.getMinutes().length)

이것은 3을 반환합니다.

  1. ’03’을 어떻게 반환합니까?
  2. .length반품 이 반환 되지 않습니까?

나는 이것을 시도했지만 작동하지 않았다 :

만약 strlen == 1다음num = ('0' + num);



답변

var date = new Date("2012-01-18T16:03");

console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );


답변

이 답변은 훌륭하지 않으며, 심지어 최상위 게시물도 눈에 띄었습니다. 여기, 브라우저 간 및 깔끔한 int / string 변환이 있습니다. 또한 내 충고는 date = Date(...)언어 대 / 소문자 구분에 크게 의존하는 위치 와 같은 코드와 함께 변수 이름 ‘date’를 사용하지 않습니다 (작동하지만 규칙이 다른 여러 언어로 서버 / 브라우저 코드로 작업 할 때 위험합니다) . 그래서 var에서 javascript Date를 가정하면 current_date:

mins = ('0'+current_date.getMinutes()).slice(-2);

이 기술은 (slice(-2))문자열 값 앞에 추가 된 “0” 의 가장 오른쪽 2자를 사용 getMinutes()합니다. 그래서:

"0"+"12" -> "012".slice(-2) -> "12"

"0"+"1" -> "01".slice(-2) -> "01"


답변

또 다른 짧은 방법은 다음을 사용하여 분을 앞에 오는 0으로 채우는 것입니다.

String(date.getMinutes()).padStart(2, "0");

의미 : 문자열이 2 자로되어 문자가 누락 된 0경우이 위치 로 설정 하십시오.

str.padStart (targetLength, padString) 에서 문서를 참조하십시오.


답변

날짜를 형식화하는 우아한 ES6 기능 hh:mm:ss:

const leadingZero = (num) => `0${num}`.slice(-2);

const formatTime = (date) =>
  [date.getHours(), date.getMinutes(), date.getSeconds()]
  .map(leadingZero)
  .join(':');


답변

가능한 경우 문제에 대해 더 깔끔한 해결책을 제시하고 싶습니다. 허용 된 답변이 매우 좋습니다. 그러나 나는 이것을 이렇게했을 것입니다.

Date.prototype.getFullMinutes = function () {
   if (this.getMinutes() < 10) {
       return '0' + this.getMinutes();
   }
   return this.getMinutes();
};

이제 이것을 사용하려면

console.log(date.getFullMinutes());


답변

나는 제안한다 :

var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : '0' + minutes;

하나의 함수 호출이 적습니다. 성능에 대해 항상 생각하는 것이 좋습니다. 짧습니다.


답변

10보다 작은 지 확인해야합니다 … 길이를 찾지 마십시오. 이것은 숫자가 아니라 문자열이기 때문에