2013-03-03 80 views
2

我对这个问题表示歉意,因为我已经发布了类似的问题,但我想知道我该怎么做下面的转换:ISO持续时间与Java脚本

PT11H9M38.7876754S 

我想禁用秒,只展会小时和分钟11:09

当我有时间显示分钟从1到9,我希望在数

TNX在咨询前加上一个0 ...

+2

[你有什么尝试?](http://whathaveyoutried.com/) – 2013-03-03 19:59:05

回答

4

你可以试试这个:

var str = 'PT11H9M38.7876754S' 
    match = str.match(/(\d*)H(\d*)M/), 
    formatted = match[1] + ':' + (!match[2][1] ? 0 + match[2] : match[2]); 

console.log(formatted); // => 11:09 
2
"PT11H9M38.78767545".replace(/PT(\d+)H(\d+)M.*/,function(m,a,b) {return a+":"+(b.length<2?"0":"")+b;}); 

一行代码:P

+2

嗯,这就是缩小器的作用。为什么你不能格式化你的代码? – 2014-12-03 12:28:16

1

由于所有的美好正则表达式东西上面这里是解析,但你而言的第三溶液有点贵可能正在寻找不同的东西。

您可以使用split函数来解析字符串并提取所需的部分。

var pt="PT11H9M38.7876754S"; 

function showtime(s){ 
    var time = s.split('.'); 
    var hours = time[0].split('T')[1].split('H')[0]; 
    var minutes = time[0].split('H')[1].split('M')[0]; 
    return digitize(hours) + ":" + digitize(minutes) 
} 

function digitize(i){ 
    return (i>9) ? i : "0" + i; 
} 


alert(showtime(pt)); // 11:09