JavaScript – Funções de data e hora

Bom, como eu sei que várias pessoas tem problemas com Data e Hora, eu bolei esse pequeno Tutorial de como trabalhar com Datas e Horas no Javascript.

Aqui vou mostrar as principais funções bem como utiliza-las na prática.

Antes uma observação: UTC (Coordinated Universal Time) é o padrão atual de tempo de acordo com os fusos horários. É continuação moderna do GMT (Greenwich Mean Time). Algumas vezes são considerados sinônimos, mas rigorosamente não são

Então vamos-lá:


Date() – Object
É onde contém

<html>
<head>
	<script language="JavaScript">
	function DataHora(){
		var data = new Date();
		tempo.innerHTML = data;
		setTimeout("DataHora()",1000)
	}
	</script>
</head>
<body>
</body>
</html>

getDay()
Retorna um número inteiro do dia da semana. Domingo 0, segunda 1, terça 2, etc.

            data = new Date();
            dia_semana = data.getDay();
<i>Exemplo: a variável dia_semana contém o dia da semana da data atual.</i?

<hr /><strong>getFullYear()</strong>
Retorna o ano do objeto Date em números absolutos, por exemplo 1998.
1
            data = new Date();
            ano = data.getFullYear();

Exemplo: a variável ano contém o ano da data atual.


getHours()
Retorna a hora do objeto Date, um número inteiro entre 0 e 23.

            data = new Date();
            hora = data.getHours();

getMilliseconds()
Retorna os milissegundos do objeto Date, um inteiro entre 0 e 999.

            data = new Date();
            ms = data.getMilliseconds();

getMinutes()
Retorna os minutos do objeto Date, um inteiro entre 0 e 59.

            data = new Date();
            min = data.getMinutes();

getMonth()
Retorna o mês do objeto Date, um inteiro entre 0 e 11 (0 janeiro, 1 fevereiro, etc).

            data = new Date();
            mes = data.getMonth();

getSeconds()
Retorna os segundos do objeto Date, um número inteiro entre 0 e 59.

            data = new Date();
            seg = data.getSeconds();

getTime()
Retorna o número de milissegundos da data conforme informado no primeiro tópico. Em geral usado para especificar a data e hora de um outro objeto Date.

            certo_dia = new Date("May 15, 1998");
            outro_dia = new Date();
            outro_dia.setTime(certo_dia.getTime());

getTimezoneOffset()
Retorna a diferença, em minutos, entre a hora local e a hora GMT.

            data = new Date();
            dif_gmt_horas = data.getTimezoneOffset() / 60;

Date.parse(string_de_data)
Retorna o número de milissegundos de uma seqüência de caracteres (string) de data, desde 01 de janeiro de 1970 00:00:00 h (hora local).

A string de data deve estar dentro do padrão aceito. Exemplo: Tue, 28 Dec 2004 11:00:00 GMT-0330. Se não especificado o fuso horário, o horário local é considerado.

Deve sempre ser usado na forma Date.parse() e não com um objeto Date criado. Em geral usado com setTime() para especificar uma nova data para o objeto.

            data = new Date();
            data.setTime(Date.parse("Apr 15, 2004"));

setDate(nDia)
Especifica um dia do mês para um objeto Date. nDia deve ser um inteiro entre 1 e 31, de acordo com o mês corrente.

            certo_dia = new Date("May 15, 1998");
            certo_dia.setDate(25);

setFullYear(nAno [, nMes, nDia])
Especifica um ano (em 4 dígitos) para um objeto date existente. nAno é um inteiro de 4 dígitos representando o ano, nMes um inteiro de 0 a 11 para o mês (0 janeiro, 1 fevereiro, etc) e nDia um inteiro de 1 a 31 para o dia do mês. Se é dado um valor para nDia, é obrigatório um valor para nMes.

Se um parâmetro é especificado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se um valor de 15 é dado para nMes, o ano é aumentado de 1 e o valor 4 é usado para nMes.

            certo_dia = new Date();
            certo_dia.setFullYear(1995);

setHours(nHora [, nMin, nSeg, nMs])
Especifica a hora para um objeto Date. nHora é um inteiro entre 0 e 23. Os demais parâmetros são opcionais: nMin (inteiro entre 0 e 59), nSeg (inteiro entre 0 e 59) e nMs (inteiro entre 0 e 999 para os milissegundos). Se nSeg é fornecido, nMin também deve ser dado. Se nMs é especificado, nMin e nSeg também devem ser.

Se um parâmetro é especificado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se 70 é dado para nMin, a hora é aumentada de 1 e 10 é usado para nMin.

            certo_dia = new Date();
            certo_dia.setHours(10);

setMilliseconds(nMs)
Especifica os milissegundos para um objeto Date. nMs deve ser um inteiro entre 0 e 999.

Se nMs é dado fora da faixa, o objeto Date é atualizado de forma coerente. Exemplo: se nMs é 1100, os segundos são aumentados de 1 e 100 é usado para os milissegundos.

            certo_dia = new Date();
            certo_dia.setMilliseconds(500);

setMinutes(nMin [, nSeg, nMs])
Especifica os minutos para um objeto Date. nMin deve ser um inteiro entre 0 e 59. Os demais parâmetros são opcionais: nSeg (inteiro entre 0 e 59) e nMs (inteiro entre 0 e 999 para os milissegundos). Se nSeg é especificado, nMin também deve ser. Se nMs é dado, nMin e nSeg também devem ser.

Se um parâmetro é dado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se nSeg é 80, os minutos são aumentados de 1 e 20 é usado para os segundos.

            certo_dia = new Date();
            certo_dia.setMinutes(25);

setMonth(nMes [, nDia])
Especifica o mês de um objeto Date. nMes deve ser um inteiro entre 0 e 11 (0 janeiro, 1 fevereiro, etc). nDia é um parâmetro opcional para o dia do mês (inteiro entre 0 e 31).

Se um parâmetro é dado fora da faixa, a função tenta atualizar o objeto de forma coerente. Exemplo: se 12 é dado para o mês, o ano é aumentado de 1 e 1 é usado para o mês.

            certo_dia = new Date();
            certo_dia.setMonth(4);

setSeconds(nSeg [, nMs])
Especifica os segundos de um objeto Date. nSeg deve ser um inteiro entre 0 e 59. nMs é um parâmetro opcional para os milissegundos (inteiro entre 0 e 999).

Se um parâmetro é dado fora da faixa, a função tenta atualizar o objeto de forma coerente. Exemplo: se 70 é dado para nSeg, os minutos são aumentados de 1 e 10 é usado para os segundos.

            certo_dia = new Date();
            certo_dia.setSeconds(15);

setTime(nMs)
Especifica um valor para o objeto Date. nMs é um inteiro correspondente ao número de milissegundos desde 01 de janeiro de 1970 00:00:00 h.

            certo_dia = new Date("May 15, 1998");
            outro_dia = new Date();
            outro_dia.setTime(certo_dia.getTime());

toLocaleString()
Retorna uma seqüência de caracteres (string) de data, com formato definido pelas configurações do sistema operacional.

            <script language="JavaScript">
            var d = new Date();
            document.write(d.toLocaleString());
            </script>

Se o seu sistema operacional não é inglês configurado para o padrão americano, notar a diferença com o exemplo dado no primeiro tópico, O objeto Date().


toUTCString()
Retorna uma string formatada de acordo com a convenção UTC. Pode variar de acordo com o sistema operacional.

            data = new Date();
            var str = data.toUTCString();

Date.UTC(nA, nM, nD [, nHora, nMin, nSeg, nMs])
Retorna o número de milissegundos desde 01 de janeiro de 1970 00:00:00 h, hora universal.

nA: ano depois de 1900. nM: inteiro de 0 a 11 para o mês. nD: inteiro de 1 a 31 para o dia do mês. nHora: inteiro de 0 a 23 para as horas. nMin: inteiro de 0 a 59 para os minutos. nSeg: inteiro de 0 a 59 para os segundos. nMs: inteiro de 0 a 999 para os milissegundos.

Se um parâmetro for dado fora da faixa, a função tenta ajustar os demais de forma coerente. Exemplo: se 12 é usado para mês, ano é incrementado de 1 e 1 é usado para mês.

Deve sempre ser usado na forma Date.UTC(…) e não com um objeto Date criado.

data_utc = new Date(Date.UTC(2004, 11, 15, 12, 0, 0));

Fonte

Comentem e postem suas dúvidas.

Até a próxima.

Facebook

About JLNeto