Search code examples
javascripthtmldatelocale

javascript toLocaleTimeString 2-digit only second or minute not working


Ex.:

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));

It shows 00 and that's fine. But if i try this only with minute or second, it shows with only one digit.

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));

What is needed to get minutes or seconds with 2 digits?


Solution

  • Thanks everyone. Sadly i've had to split the time with hours, minutes and seconds and use array indexes to get what i wanted:

    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]);