javascript toLocaleTimeString 2 位数仅秒或分钟不工作

javascript toLocaleTimeString 2-digit only second or minute not working

例如:

const options = {
              timeZone:"America/Sao_Paulo",
              hour12 : false,
              hour:  "2-digit",
              //minute: "2-digit",
              //second: "2-digit"
           };
              
console.log(new Date("2019-06-05T00:01:00").toLocaleTimeString("pt-BR",options));

它显示 00,没关系。但是如果我只用分钟或秒来尝试这个,它只显示一个数字。

const options = {
              timeZone:"America/Sao_Paulo",
              hour12 : false,
              //hour:  "2-digit",
              minute: "2-digit",
              //second: "2-digit"
           };
console.log(new Date("2019-06-05T00:01:00").toLocaleTimeString("pt-BR",options));

const options2 = {
              timeZone:"America/Sao_Paulo",
              hour12 : false,
              //hour:  "2-digit",
              //minute: "2-digit",
              second: "2-digit"
           };
console.log(new Date("2019-06-05T00:01:00").toLocaleTimeString("pt-BR",options2));

获取 2 位数的分钟或秒需要什么?

不幸的是,chrome 和 firefox 并没有很好地遵守这一点。最好的方法是格式化小时、分钟和秒,这将导致它始终打印 2 位数字。

const options = {
    timeZone:"America/Sao_Paulo",    
    hour12 : false,
    hour:  "2-digit",
    minute: "2-digit",
    second: "2-digit"
};

并解析它 post.

谢谢大家。遗憾的是,我不得不将时间分为小时、分钟和秒,并使用数组索引来获得我想要的内容:

let d = new Date('2019-06-06T00:01:02');
        
const options = {
     timeZone:"America/Sao_Paulo",
     hour12 : false,
     hour:  "2-digit",
     minute: "2-digit",
     second: "2-digit"
  };
        
let horario = d.toLocaleTimeString("pt-BR",options);
        
let array_horario = horario.split(':');
        
console.log(array_horario[0]);
console.log(array_horario[1]);
console.log(array_horario[2]);