var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
Isso retorna 3.
- Como faço para retornar '03'?
- Por que
.length
retornar não encontrado?
Eu tentei isso, mas não funcionou:
Se strlen == 1
entãonum = ('0' + num);
javascript
Mark Fondy
fonte
fonte
.getMinutes()
é um número inteiro, você não pode acessar a.length
partir de um número inteiro. Para fazer isso (não recomendado ao lidar com datas) é analisar o número em uma sequência e, em seguida, verificar o comprimento. Por exemplo:date.getMinutes().toString().length
Respostas:
fonte
<10?'0':''
significa?Caramba, essas respostas não são ótimas, mesmo o post principal melhorado. Aqui você vai, cross-browser e conversão int / string mais limpa. Além disso, meu conselho é não usar um nome de variável 'date' com código como o
date = Date(...)
local em que você depende muito da distinção entre maiúsculas e minúsculas (funciona, mas é arriscado ao trabalhar com o código do servidor / navegador em diferentes idiomas e com regras diferentes) . Então, assumindo a data do javascript em uma varcurrent_date
:A técnica é usar os 2 caracteres mais à direita
(slice(-2))
de "0" anexados ao valor da sequência degetMinutes()
. Assim:e
fonte
Outra maneira curta é preencher os minutos com um zero à esquerda usando:
Significado: faça com que a string tenha dois caracteres, se estiver faltando um caractere, defina
0
a nessa posição.Consulte os documentos em str.padStart (targetLength, padString)
fonte
Função ES6 elegante para formatar uma data em
hh:mm:ss
:fonte
Gostaria de fornecer uma solução mais clara para o problema, se puder. A resposta aceita é muito boa. Mas eu teria feito assim.
Agora, se você quiser usar isso.
fonte
Eu sugiro:
é uma chamada de função a menos. É sempre bom pensar em desempenho. Também é curto;
fonte
você deve verificar se é menor que 10 ... sem procurar o comprimento, porque esse é um número e não uma sequência
fonte
Outra opção:
fonte
substr
. w3schools.com/jsref/jsref_substr.aspUsando a API de internacionalização do ECMAScript, mais informações :
fonte
.length
é indefinido porquegetMinutes
está retornando um número, não uma sequência. números não têm umalength
propriedade. Você poderia fazervar m = "" + date.getMinutes();
para torná-lo uma corda, em seguida, verificar o comprimento (que você gostaria de verificar se há
length === 1
, não 0).fonte
Os números não têm comprimento, mas você pode facilmente converter o número em uma string, verificar o comprimento e, em seguida, acrescentar o 0, se necessário:
fonte
Não vejo respostas ES6 aqui, então adicionarei uma usando a formatação StandardJS
fonte
Presumo que você precisaria do valor como string. Você pode usar o código abaixo. Ele sempre retornará, fornecendo os minutos de dois dígitos como sequência.
Espero que isto ajude.
fonte
Eu costumo usar este pedaço de código:
É bastante semelhante à resposta aceita @ogur, mas não concatena uma sequência vazia, caso 0 não seja necessário. Não tenho certeza se é melhor. Apenas uma outra maneira de fazê-lo!
fonte
você pode usar o momento js:
exemplo:
moment('2019-10-29T21:08').format('mm') ==> 08
espero que ajude alguém
fonte
novo no JS, então isso foi muito útil para as pessoas que procuram este problema também, então é assim que eu o mostro na div chamada "class =" min "
espero que ajude alguém
fonte
que tal agora? funciona para mim! :)
fonte
Outra opção para obter minutos ou horas com dois dígitos.
fonte
Para minutos com dois dígitos, use:
new Date().toLocaleFormat("%M")
fonte
Se você estiver usando o AngularJS em seu projeto, basta injetar $ filter e usá-lo como aqui:
Você também pode formatar a saída no modelo, mais sobre filtros aqui .
fonte