Como determinar se um objeto Date contém uma data inválida em JavaScript?
Olá a todos! Sou novo em JavaScript e encontrei um problema ao trabalhar com datas. Preciso fazer parse de strings que podem conter tanto datas corretas (por exemplo, "2024-10-15") quanto lixo (por exemplo, "abc" ou "32.13.2024"). Estou usando o construtor `new Date()`, mas ele se comporta de forma estranha.
Aqui está um exemplo:
```javascript
let date1 = new Date("2024-10-15"); // funciona
let date2 = new Date("abc"); // também cria um objeto!
```
O problema é que `new Date("abc")` não lança um erro, mas cria um objeto Date com valor interno `NaN`. Quando tento exibi-lo via `console.log`, vejo `Invalid Date`. Mas como posso verificar programaticamente se a data é inválida? O método `typeof` mostra "object", e `instanceof Date` retorna `true` até para lixo.
Tentei comparar com `NaN` — não funciona, porque `NaN !== NaN`. Usei `isNaN(date1)` — mas ele retorna `false` para uma data válida e `true` para uma inválida, mas isso não funciona de forma estável. Como verificar correta e confiavelmente se a
No answers yet.
Faça login para deixar uma resposta
Blogs
Kotlin em 2025: principais novidades e atualizações da linguagem