초를 HH:mm:ss
어떻게 변환 할 수 있습니까?
현재 아래 기능을 사용하고 있습니다
render: function (data){
return new Date(data*1000).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");;
}
이것은 크롬에서 작동하지만 파이어 폭스에서 12 초 동안 01:00:12
크로스 브라우저 호환성을 위해 moment.js를 사용하고 싶습니다.
나는 이것을 시도했지만 작동하지 않습니다
render: function (data){
return moment(data).format('HH:mm:ss');
}
내가 도대체 뭘 잘못하고있는 겁니까?
편집하다
나는 다음과 같은 moment.js 없이 해결책 을 찾았습니다.
return (new Date(data * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
moment.js에서 어떻게 할 수 있는지 여전히 궁금합니다.
답변
에서 이 게시물에 나는 도약 문제를 방지하려면이 옵션을 시도 할 것
moment("2015-01-01").startOf('day')
.seconds(s)
.format('H:mm:ss');
jsPerf를 실행하지 않았지만 새 날짜 개체를 백만 번 만드는 것보다 빠르다고 생각합니다.
function pad(num) {
return ("0"+num).slice(-2);
}
function hhmmss(secs) {
var minutes = Math.floor(secs / 60);
secs = secs%60;
var hours = Math.floor(minutes/60)
minutes = minutes%60;
return `${pad(hours)}:${pad(minutes)}:${pad(secs)}`;
// return pad(hours)+":"+pad(minutes)+":"+pad(secs); for old browsers
}
답변
이것은 다른 게시물에서 참조한 mplungjan 답변과 유사하지만 더 간결합니다.
const secs = 456;
const formatted = moment.utc(secs*1000).format('HH:mm:ss');
document.write(formatted);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
예를 들어 초가 1 일 (86400)을 초과하면 예상 한 것을 얻지 못합니다.
답변
moment-duration-format 플러그인을 사용할 수 있습니다 .
var seconds = 3820;
var duration = moment.duration(seconds, 'seconds');
var formatted = duration.format("hh:mm:ss");
console.log(formatted); // 01:03:40
<!-- Moment.js library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<!-- moment-duration-format plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>
이 피들 참조
업데이트 : 60 초 미만의 값에 대한 트리밍을 방지하려면 다음을 사용하십시오 { trim: false }
.
var formatted = duration.format("hh:mm:ss", { trim: false }); // "00:00:05"
답변
var seconds = 2000 ; // or "2000"
seconds = parseInt(seconds) //because moment js dont know to handle number in string format
var format = Math.floor(moment.duration(seconds,'seconds').asHours()) + ':' + moment.duration(seconds,'seconds').minutes() + ':' + moment.duration(seconds,'seconds').seconds();
답변
moment.js 기간을 올바르게 사용하는 방법은 무엇입니까?
|
코드에서 moment.duration () 사용
먼저 moment
및 moment-duration-format
.
import moment from 'moment';
import 'moment-duration-format';
그런 다음 기간 기능을 사용하십시오. 위의 예를 적용 해 보겠습니다 : 28800 = 오전 8시.
moment.duration(28800, "seconds").format("h:mm a");
? 음, 위의 유형 오류가 없습니다. ? 오전 8시에 올바른 가치를 얻었습니까? 아니…, 당신이 얻는 가치는 오전 8시입니다. Moment.js 형식이 예상대로 작동하지 않습니다.
? 해결책은 초를 밀리 초로 변환하고 UTC 시간을 사용하는 것입니다.
moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format('h:mm a')
이제 오전 8 시가됩니다. 적분 시간으로 오전 8시 대신 오전 8시를 원하면 RegExp를 수행해야합니다.
const time = moment.utc(moment.duration(value, 'seconds').asMilliseconds()).format('h:mm a');
time.replace(/:00/g, '')
답변
24 시간까지 Duration.format
더 이상 사용되지 않는 것처럼 moment@2.23.0으로
const seconds = 123;
moment.utc(moment.duration(seconds,'seconds').as('milliseconds')).format('HH:mm:ss');
답변
초 (숫자)를 문자열 형식 (예 : ‘mm : ss’)으로 변경하는 내 솔루션 :
const formattedSeconds = moment().startOf('day').seconds(S).format('mm:ss');
예에서 ‘S’ 대신 초를 작성 하십시오 . 그리고 필요한 곳에 ‘formattedSeconds’를 사용하십시오.