Executando verificação de segurança...
1

Que massa isso aqui!

Fico honrado em receber contribuições como a do maniero (que não o conhecia, mas que tem um currículo espetacular), e do kht (que conheço pessoalmente, pois trabalhamos na mesma organização, mas não sabia de seu incrível conhecimento sobre o assunto - enfim que mundo pequeno). Isto é um sinal que estou indo pelo caminho certo :)

No meu trabalho principal sou cientista de dados, mexo com banco de dados, BI, ETL, mas nos últimos 5 anos tenho feito muitos freelas em desenvolvimento Javascript/Typescript/React. Talvez minha experiência em desenvolvimento esteja enviezada com o baixo nível que o mercado de desenvolvimento apresentou nos últimos anos (com a pandemia) trazendo muito programador com pouca experiência para o combate.

Então hoje resolvi postar essa discussão sobre como enfrentei problemas de verdadeiras gambiarras, tanto no backend quanto no frontend, que já me apareceram sobre esse assunto de datas, mas observo que, ainda que estivesse com uma abordagem que está dando certo, certamente há algo melhor a se fazer.

Ah, sobre o uso de Date.parse(), ele está sendo usado no exemplo no lado servidor (Node.js) mas ali o objetivo é tão somente avaliar se a data enviada está no formato desejado (vamos dizer que a API Reference determina que o formato seja string 'YYYY-MM-DD' então é preciso somente garantir esse contrato).

Vou consumir todo esse conteúdo sobre este assunto que você colocou que com certeza será de grande valia!

Obrigado pela contribuição, Hugo!

Carregando publicação patrocinada...
3

sobre o uso de Date.parse(), ele está sendo usado no exemplo no lado servidor (Node.js) mas ali o objetivo é tão somente avaliar se a data enviada está no formato desejado (vamos dizer que a API Reference determina que o formato seja string 'YYYY-MM-DD' então é preciso somente garantir esse contrato)

Mas da forma que foi feito, o código não garante que a string está no formato YYYY-MM-DD. Por exemplo, se eu passar a string '10/02/2020', vai criar um data referente a 2 de outubro (e não 10 de fevereiro, veja).

Isso porque o Node.js usa a mesma engine do Chrome, e nesta implementação, o formato "XX/XX/XXXX" é interpretado como "mês/dia/ano". Se for para garantir o formato, teria que verificar isso explicitamente (por exemplo, fazendo o split pelo hífen, ou usando regex).


Caraca, onde vc trabalhou? É que conheço mais de um Jefferson :-)

1

Nossa, você tem total razão, e consultando o último projeto que trabalhei com isso, de fato tem uma regex que faz essa validação.

Sou o Jefferson Felix. Trabalho no TRT-SP há mais de 11 anos, já passei pela sustentação do PJe mas hoje estou no BI (apesar de sempre ter trabalho com isso mesmo) :)

Abraço!