時間間隔(合計と平均)を「hh:mm:ss」形式に変換するコードがありますが、IE 11を除いて、次のエラーが発生します。
SCRIPT438:オブジェクトはプロパティまたはメソッド 'padStart'をサポートしていません
このコードを書き直して機能させるにはどうすればよいですか?
var times = [3600000, 60000, 1000];
function formatTime(avg) {
return times.map(function (t) {
var value = Math.floor(avg / t);
avg %= t;
return value;
}).map(function (v) {
return v.toString().padStart(2, 0);
}).join(':');
}
console.log(formatTime(32939000)); // 09:08:59
padStart(2, 0)
最後のreturn
ステートメントで呼び出されます。IE11で機能させるにはどうすればよいですか?
あなたのための特定のどちらか1または2桁の数字を持っている時間部分(時間、分、秒)、扱っている- -場合あなたは置き換えることができます。
return v.toString().padStart(2, 0);
と:
return ("0" + v).slice(-2);
...そして、最初の反復でそれを実行して、追加のmap
:を回避できるようにしてください。
var times = [3600000, 60000, 1000];
function formatTime(avg) {
return times.map(function (t) {
var value = Math.floor(avg / t);
avg %= t;
return ("0" + value).slice(-2);
}).join(':');
}
console.log(formatTime(32939000)); // 09:08:59
もう1つの方法は、最初に結合を行い、次に\b\d\b
正規表現として使用して1桁を見つけ、欠落しているゼロをreplace
次のように挿入することです。
.join(':').replace(/\b\d\b/g, "0$&");
var times = [3600000, 60000, 1000];
function formatTime(avg) {
return times.map(function (t) {
var value = Math.floor(avg / t);
avg %= t;
return value;
}).join(':').replace(/\b\d\b/g, "0$&");
}
console.log(formatTime(32939000)); // 09:08:59
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加