Moment: 00:00:00 não deve ser igual a 12:00:00 quando analisado com o formato h: m: s

Criado em 6 jan. 2012  ·  4Comentários  ·  Fonte: moment/moment

Estes parecem ser os resultados errados - estou fazendo algo errado?

momento ('12: 00: 00 ',' hh: mm: ss '). formato (' hh: mm: ss '); // "12:00:00"
momento ('00: 00: 00 ',' hh: mm: ss '). formato (' hh: mm: ss '); // "12:00:00" (parece estar incorreto)

momento ('12: 30: 00 ',' hh: mm: ss '). formato (' hh: mm: ss '); // "12:30:00"
momento ('00: 30: 00 ',' hh: mm: ss '). formato (' hh: mm: ss '); // "12:30:00" (parece estar incorreto)

Comentários muito úteis

Você deve usar HH:mm:ss vez de hh:mm:ss para obter um relógio de 24 horas.

No entanto, parece haver um bug. 0 horas não é uma hora válida em um relógio de 12 horas. Não tenho certeza de qual é o comportamento desejado nesta situação. Não parece que você deve obter um erro se for 0 horas.

Todos 4 comentários

Você deve usar HH:mm:ss vez de hh:mm:ss para obter um relógio de 24 horas.

No entanto, parece haver um bug. 0 horas não é uma hora válida em um relógio de 12 horas. Não tenho certeza de qual é o comportamento desejado nesta situação. Não parece que você deve obter um erro se for 0 horas.

Legal, obrigado pela resposta. Mudei para o uso de HH, mas parece que ainda estou tendo o problema, pelo menos com o Chrome:

momento ('12: 00: 00 ',' HH: mm: ss '). formato (' HH: mm: ss '); // "00:00:00" (incorreto?)
momento ('00: 00: 00 ',' HH: mm: ss '). formato (' HH: mm: ss '); // "00:00:00" (comportamento correto)

Por padrão, HH e hh analisam as horas no formato de 24 horas. Para analisar no tempo de 12 horas, você precisa adicionar 'am' ou 'pm'.

A postagem original estava funcionando corretamente. Você pode ver isso se adicionar a à string de formatação.

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 pm"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 am"

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 pm"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 am"

Acredito que o problema abaixo seja um problema conhecido que foi corrigido. Foi causado pelo commit em # 74 e corrigido em # 92. Estou adicionando testes de unidade para ele. Também vou esclarecer os documentos.

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"

Se estiver usando 1.2.0, você deve atualizar para 1.3.0, pois era quando a correção de bug foi introduzida.

Legal, parece bom. Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

RobinvanderVliet picture RobinvanderVliet  ·  3Comentários

slavafomin picture slavafomin  ·  3Comentários

benhathaway picture benhathaway  ·  3Comentários

vbullinger picture vbullinger  ·  3Comentários

danieljsinclair picture danieljsinclair  ·  3Comentários