2017-02-27 2 views
2

내가 유튜브 API v3의
moment.js

PT2M54S
같은 비디오 기간의 형식으로 YouTube에 동영상을 검색 할 수있는 작은 기능을 쓰기를 사용하여 YouTube의 API 비디오의 시간의 형식을 어떻게 변환하고 싶습니다 as 00:02:54 use moment.js

해결책이 있습니까?

답변

0

다음 방법은 기간을 초 단위로 반환합니다. 그래서 당신은 단순히 당신은 moment.duration 개체를 만들 수 있습니다 moment.js

function getDurationInSecond(youtubeDuration) 
{ 
    var re=/pt([0-9]+)M([0-9]+)S/gi, 
     rex = new RegExp(re), 
     du = rex.exec(youtubeDuration); 
    if (du.length<1) 
     return 0; 
    var s=0; 
    s+= du.length >1 && du[1]? parseInt(du[1], 10) * 60 :0; // adding minute 
    s+= du.length >2 && du[2]? parseInt(du[1], 10) :0; // 
    return s; 
} 

var time='PT2M45S'; 
console.log(getDurationInSecond(time)); 
1

에 그것을 사용할 수있는 다음 moment-duration-format 플러그인을 사용하여 서식을 지정합니다. 라이브러리는 기간에 format 메소드를 추가하고 사용자가 요청한 형식으로 출력을 얻을 수있는 trim 옵션을가집니다.

var dur = moment.duration('PT2M54S'); 
 
console.log(dur.format('HH:mm:ss', {trim: false})); // 00:02:54
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>

0

내가 유튜브 iOS 앱을 다시하고 (비디오의 하단 모서리에 실행 시간을 만들 moment + moment-duration-format을 사용하고 있습니다 :

샘플 코드는 다음과 같다 예 : 4시 5 분).

import moment from 'moment'; 
import 'moment-duration-format'; 

export default (duration) => moment 
    .duration(duration) 
    .format('h:mm:ss') 
    .padStart(4, '0:0'); 
: 당신이에 관심이 있다면

, 나는이 유틸리티 기능을 제공합니다