我们如何在时间格式的一位数字前加0。 就像我将时间“ 0:3:25”(hh:mm:ss)格式转换为“ 00:03:25”
答案 0 :(得分:0)
您可以执行以下操作(包括说明):
const time = '0:3:25';
const correctedTime = parseTime(time);
console.log(correctedTime);
function parseTime(time){
return time
.split(':') // Split them into array as chunk of [hour, minute, second]
.map(pad) // Map them with `pad` function below
.join(':'); // Join them back into 'hh:mm:ss'
}
function pad(n){
return parseInt(n) < 10 // If number less than 10
? '0' + n // Add '0' in front
: n; // Else, return the original string.
}
答案 1 :(得分:0)
您可以在“:”上添加分割现有时间字符串,然后对于每个部分,添加“ 0”,然后采用最后两个字符。然后,只需将这些部分重新组合成一个弹弓即可。
let time = "0:3:25";
function updateTime(){
let newTimePortions = [];
let timePortions = time.split(":");
timePortions.forEach(function(portion,index) {
newTimePortions[index] = ("0" + portion).slice(-2)
})
return newTimePortions.join(':')
}
console.log(updateTime()); // gives 00:03:25
答案 2 :(得分:0)
请尝试以下代码
var dateinfo="0:3:25";
var newdate=dateinfo.split(":");
var hdate=newdate[0];
var mdate=newdate[1];
var sdate=newdate[2];
if(hdate.length == 1 ){
hdate="0"+hdate;
}
if(mdate.length == 1 ){
mdate="0"+mdate;
}
if(sdate.length == 1 ){
sdate="0"+sdate;
}
dateinfo=hdate+":"+mdate+":"+sdate;
这对我有用
答案 3 :(得分:0)
您不应对此过于复杂:
const time = "0:3:25";
const paddedTime = time.split(':').map(e => `0${e}`.slice(-2)).join(':')
console.log(paddedTime)
用分号(:)
分割字符串,该字符串产生一个数组(小时,分钟,秒)。 映射此数组,该函数具有在数组中的每个项目之前添加 0 的功能,并对后两位数进行切片(您将再次获得数组)。然后用分号 join 生成的数组(然后您将得到一个字符串)。
或者您可以使用 regex 代替拆分:
const time = "0:3:25";
const paddedTime = time.match(/\d+/g).map(e => `0${e}`.slice(-2)).join(':')
console.log(paddedTime)
最后一部分与 regex (映射,切片,联接)相同。
您还可以使用 padStart()(JavaScript内置函数):
const time = "0:3:25";
const paddedTime = time.split(':').map(e => e.padStart(2, 0)).join(':')
console.log(paddedTime)
在MDN上
padStart():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart