javascript查询中的String.format

javascript查询中的String.format,javascript,Javascript,我正在尝试将java代码写入javascript public static String generateTimeRange( start, end) { return String.format("%02d:%02d-%02d:%02d", start / 60, start % 60, end / 60, end % 60); } 基本上,这将返回时间00:10-00:20(如果10和20是参数) 我想用javascript编写相同的函数,但是很难。有人能帮忙吗 functio

我正在尝试将java代码写入javascript

public static String generateTimeRange( start,  end) {
    return String.format("%02d:%02d-%02d:%02d", start / 60, start % 60, end / 60, end % 60);
}
基本上,这将返回时间00:10-00:20(如果10和20是参数)

我想用javascript编写相同的函数,但是很难。有人能帮忙吗

function generateTimeRange( start,  end) {
    return String.format("{0}:{1}-{2}:{3}", start / 60, start % 60, end / 60, end % 60);
}
由于javascript没有String.format,我使用了以下代码:

if (!String.format) {
  String.format = function(format) {
    var args = Array.prototype.slice.call(arguments, 1);
    return format.replace(/{(\d+)}/g, function(match, number) { 
      return typeof args[number] != 'undefined'
        ? args[number] 
        : match
      ;
    });
  };
}
但它有点像是打印了下面的内容

generateTimeRange(10,20);
"0.16666666666666666:10-0.3333333333333333:20"
看起来我没有做%02d。如何在javascript中实现它


感谢

javascript es6引入了字符串模板,可以解决您的问题

function\u pad(\n,宽度){
常数z='0';
常数n=_n+'';
返回n.length>=width?n:新数组(宽度-n.length+1)。连接(z)+n
}
函数格式化时间(开始、结束){
const minStart=_pad(parseInt(开始/60),2)
const secStart=_pad(开始%60,2)
常数minEnd=_pad(parseInt(结束/60),2)
常数secEnd=_pad(结束%60,2)
返回`${minStart}:${secStart}-${minEnd}:${secEnd}`
}
log(formatTime(100120))//01:40-02:00

log(formatTime(60,61))//01:00-01:01
我想问题是如何生成固定长度的num。 可以使用substr,如:

函数(num){
(“00”+parseInt(num)).substr(-2);

}

您可以只返回一个连接字符串,也可以使用

函数generateTimeRange(开始、结束){
返回数学地板(开始/60)+“:“+数学地板(开始%60)+”-“+数学地板(结束/60)+”:“+数学地板(结束%60);
}
函数GenerateTimeRange插值(开始、结束){
var sPrefix=数学楼层(开始/60),
开始=数学楼层(开始%60),
ePrefix=数学楼层(结束/60),
结束=数学楼层(结束%60);
返回`${sPrefix}:${start}-${ePrefix}:${end}`
}
日志(generateTimeRange(10,20));

日志(generateTimeRangeInterpolation(10,20))填充的零,对吗?我用这个

一小条
String.prototype.zer0Pad=函数(pad,siz){
var str=这个;
var len=parseInt(siz,10);
while(str.lengthlog('result1:'+result1+'\nresult2:'+result2')感谢您的回复。