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


136
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);


합산 .getMinutes()하면 정수는 정수이므로 정수에서 액세스 할 수 없습니다 .length. 이를 달성하려면 (날짜를 다룰 때 권장되지 않음) 숫자를 문자열로 구문 분석 한 다음 길이를 확인합니다. 예 :date.getMinutes().toString().length
ViniciusPires

답변:


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

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

2
이것은 무엇을 <10?'0':''의미합니까?
user1063287

@ user1063287 다른 문장이라면 인라인입니다
Aryeh Armon

5
@ user1063287 의미 : "getMinutes ()가 10보다 작은 경우 0을 리턴하고, 더 큰 경우 빈 문자열을 리턴하십시오.
Michael Giovanni Pumo

@ user1063287 여기를 참조하십시오 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
shlgug

PHP에서 (condition? true : false) JS에서 true 문 (condition? : false)을 생략 한 다음 (condition || false)를 사용할 수 있습니다.
ternary

203

이 답변은 훌륭하지 않으며, 심지어 최상위 게시물도 눈에 띄었습니다. 여기, 브라우저 간 및 깔끔한 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"

7
우아한 솔루션
Oldenborg

1
slice (-2)의 사용은 직관적이지 않지만, 나는 그것을 좋아합니다.
ChrisFox

33

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

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

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

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


18

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

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

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

12

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

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

이제 이것을 사용하려면

console.log(date.getFullMinutes());

10

나는 제안한다 :

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

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


4

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


4

다른 옵션 :

var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);

이 솔루션이 마음에 들지만 IE8 및 이전 버전은에 대해 음수를 지원하지 않는 것 같습니다 substr. w3schools.com/jsref/jsref_substr.asp
GtEx


3

.lengthgetMinutes문자열이 아닌 숫자를 반환 하므로 정의되지 않습니다. 숫자는 length속성 이 없습니다 . 넌 할 수있어

var m = "" + date.getMinutes();

문자열로 만들고 길이 확인하십시오 ( length === 10이 아닌 을 확인하고 싶습니다 ).


3

숫자는 길이가 없지만 숫자를 문자열로 쉽게 변환하고 길이를 확인한 다음 필요한 경우 0을 앞에 붙일 수 있습니다.

var strMonth = ''+ date.getMinutes ();
if (strMonth.length == 1) {
  strMonth = '0'+ strMonth;
}

3

여기에 ES6 답변이 표시되지 않으므로 StandardJS 형식을 사용하여 답변을 추가합니다.

// ES6 String formatting example
const time = new Date()
const tempMinutes = new Date.getMinutes()
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes

3

문자열로 값이 필요하다고 가정합니다. 아래 코드를 사용할 수 있습니다. 항상 두 자리 분을 문자열로 반환합니다.

var date = new Date(date);
var min = date.getMinutes();

if (min < 10) {
min = '0' + min;
} else {
min = min + '';
}
console.log(min);

도움이 되었기를 바랍니다.


1

나는 보통이 코드를 사용한다 :

var start = new Date(timestamp),
    startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes();

@ogur 허용 답변과 매우 유사하지만 0이 필요하지 않은 경우 빈 문자열을 연결하지 않습니다. 확실하지 않다. 그것을하는 다른 방법!


1

당신은 순간 js를 사용할 수 있습니다 :

moment(date).format('mm')

예 : moment('2019-10-29T21:08').format('mm') ==> 08

그것이 누군가를 돕기를 바랍니다


어쨌든 순간을 사용할 때 아주 좋은, 감사합니다 :-)
Nadine

0
$(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() );

JS를 처음 접했을 때이 문제를 가장 많이 본 ppl도 매우 도움이되었으므로 "class ="min "이라는 div에 표시하는 방법입니다.

그것이 누군가를 돕기를 바랍니다


0

이건 어때요? 그것은 나를 위해 작동합니다! :)

var d = new Date();
var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');

0

두 자리 분 또는 시간을 얻는 또 다른 옵션.

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

var minutes = date.toTimeString().slice(3, 5); 
var hours   = date.toTimeString().slice(0, 2); 


-2

프로젝트에서 AngularJS를 사용하는 경우 $ filter를 삽입하고 다음과 같이 사용하십시오.

$filter('date')(value, 'HH:mm')

필터 에서 자세한 내용은 템플릿에서 출력 형식을 지정할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.