7

期間文字列「PT1M33S」があります。次の形式で結果を取得したい -> 01:33 js または jquery を使用してそれを行う方法を誰か教えてもらえますか??

4

4 に答える 4

19

これは時間形式ではなく、ビデオの長さだけです。

     ------ 33 Seconds
    ''
PT1M33S
  '------- 1 Minute

H - 時間
M - 分
S - 秒

だからこれを試してください

var timeD = "PT1M33S";
var formattedTime = timeD.replace("PT","").replace("H",":").replace("M",":").replace("S","")
alert(formattedTime);

たとえば、フィドルは単純な正規表現でも実行できます。

ご理解いただければ幸いです。

于 2013-09-30T12:06:34.920 に答える
0

この回答は単純なので気に入りましたが、分または秒が 10 未満の場合、たとえば 10:04 が 10:4 として返されるなど、奇妙な結果が得られます。

そこで、時間文字列をさらに解析して再構築するために、いくつかの単純な関数を追加しました。

function formatTimeSeg(segment) {
    newSegment = segment;
    segLength = segment.length;
    if(segLength==1){
        newSegment = '0'+segment;
    }
return newSegment;
}
extractedTime = duration.replace("PT","").replace("H",":").replace("M",":").replace("S","")
extractedTime = extractedTime.split(':');
timeLength = extractedTime.length;
switch(timeLength) {
    case 3:
        hours=extractedTime[0];minutes=extractedTime[1];seconds=extractedTime[2];
        minutes = formatTimeSeg(minutes);
        seconds = formatTimeSeg(seconds);
        formattedTime = hours+':'+minutes+':'+seconds;
    break;
    case 2:
        minutes=extractedTime[0];seconds=extractedTime[1];
        minutes = formatTimeSeg(minutes);
        seconds = formatTimeSeg(seconds);
        formattedTime = minutes+':'+seconds;
    break;
    case 1:
        seconds=extractedTime[0];
        seconds = formatTimeSeg(seconds);
        formattedTime = '0:'+seconds;
    break
}
于 2015-05-10T20:34:01.917 に答える