すでに同様の質問を投稿しているので、質問をお詫びしますが、次の変換を行う方法を知りたいです。
PT11H9M38.7876754S
秒を無効にして、時と分のみを表示したい11:09
1から9までの分が表示される時間がある場合、数値の前に0を追加したい
アドバイスのTnx...
すでに同様の質問を投稿しているので、質問をお詫びしますが、次の変換を行う方法を知りたいです。
PT11H9M38.7876754S
秒を無効にして、時と分のみを表示したい11:09
1から9までの分が表示される時間がある場合、数値の前に0を追加したい
アドバイスのTnx...
これを試すことができます:
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
"PT11H9M38.78767545".replace(/PT(\d+)H(\d+)M.*/,function(m,a,b) {return a+":"+(b.length<2?"0":"")+b;});
ワンライナー:p
優れたRegExpのものはすべて上にあるので、解析の点で少し高価な 3 番目のソリューションがありますが、別のものを探しているかもしれません。
関数を使用し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