JavaScript - Varíaveis tipo data

Variáveis tipo Data - Qual é o tamanho da dor de cabeça ?

Se você conhece desenvolvimento web, banco de dados e muitas outras especialidades de TI sabe que data é um problema.

O problema é que data dentro dos sistemas é armazenada em binário e cada sistema como são proprietários fazem isso utilizando um formato independente dos demais sistemas ou fabricantes.

Sendo assim sempre que essa data tem que sair do servidor sql para ser exibida pela camada de apresentação dos sistemas seja ele web, nativo ou quando numa pesquisa enviamos os dados de um servidor para outro, etc...esse formato 'dado binário' tem que ser convertido para o formato data que o receptor entenda, por exemplo, se for uma tela normalmente é um texto, se for uma pesquisa entre servidores deve ser compatível para que o outro servidor entenda.

E aí que a coisa pega...data não depende só do formato que a empresa proprietária pelo seu desenvolvimento utilzou mas também do idioma, da localização, preferências do usuário ou idioma que o servidor destinatário foi configurado.
Chamaremos esta funcionalidade de conversão de formato de binário para uma data intelegível ao usuário de algorítimo de conversão.

Que problema causa essa 'conversão' ? Se a data foi exibida ela teve seu formato original mudado, digamos, de binário para texto e para voltar a ser usada no sistema um algorítimo contrário ao da conversão que a converterá a data de texto em binário.
o algorítimo de conversão deverá ser 'casado' com o algorítimo fazer exatamente o processo inverso, converter texto para binário e o algorítimo deverá ser exatamente o mesmo que converteu o binário em data senão poderá ocorrer erro. Isso dentro de um mesmo servidor praticamente não ocorre mas num mundo tão diverso como o nosso é o que mais ocorre.

Se o mesmo algorítimo de conversão do binário para a data for usado para converter a data para binário não haverá erro. Contudo muitas vezes a data é emitida de um sistema para outro e se os 2 sistemas não tiverem o mesmo algorítimo para tratamento de data ocorrerá um erro.

Citando um exemplo eu tenho 2 servidores microsoft sql server um no idioma português e outro em inglês. Quando eu faço a pesquisa num e dou um insert numa tabela do outro como os algorítimos de conversão de datas são diferentes nenhuma data será transferida corretamente e a chance de ocorrer um erro é enorme. Mesmo a inversão de dia com o mês pode ocorrer sem ocorrer erros, é só o dia ser de 1 a 12 que ele poderá ser confundido com o mês e o erro será desapercebido.

Por isso você encontra em qualquer sistema um monte de funções para converter a data em qualquer formato ou idioma. Isto permite a utilização da data de um sistema em outro sistema com diferentes 'algorítimos' de tratamento de datas.

Como usar Variáveis tipo Data ?

Declarar uma variável tipo significa usar a função Date e ela suporta 4 formatos, ou para ser mais exato, 4 sobrecargas :

1•new Date();

2•new Date(valor);

3•new Date(dataString);

4•new Date(ano, mês, dia, hora, minuto, segundo, milissegundo);

A partir dessa linha todas as mensagens são exibidas diretamente em javascript.

Importante: Dia varia de 1 a 31. Mês varia de 0 a 11. Ano se forem só com 2 dígitos são entendidos como 19xx e com 4 dígitos numéricos são usados os que forem fornecidos.