Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabbay

Input com data -> converter para segundos

Recommended Posts

E ai pessoal, procurei e revirei o forum inteiro e não encontrei uma forma de pegar uma data dentro de um campo de formulário input com o formato "dd/mm/yyyy" e converte-lo para segundos, alguém sabe fazer??Na minha cabeça de programador de PHP é tão simples, mas essa porcaria está me deixando de cabelo em pé, já revirei livros de JS e varios sites.Espero que alguém me dê uma luz.Abraços. :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim convertela para segundos? você vai subtrair da data atua e converter o resultado em segundos?para converter em segundos você precisa de um número de dias, horas, minutos etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehehe, vai ter que fazer na mão...pega os dias, soma com os dias passados até o inicio do ano (tem q verificar se o ano é bisexto por causa de fevereiro) e depois transformar 2006 em dias também... Depois que você tiver a soma dos dias, do dia zero até o dia atual, daí você converte para horas, depois minutos, e finalmente segundos.Complicadim né!? =PTe aconselho a usar uma linguagem dinâmica para fazer isso, geralmente elas tem mais recursos facilitadores. Se não me engano, php ou jsp já tem função pronta pra isso.F.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode ser assim tão complicado, encontrei algumas fórmulas, mas ainda não está dando certo, olhe o exemplo abaixo:

 

<script> 	hoje = new Date(); // pega a data	dia = hoje.setDate(25); // Registra dia 25	dia2 = hoje.setDate(20); // Registra dia 20	alert("DATA SOLICITADA: "+dia+"\rDATA SOLICITADA 2: "+dia2+"\rDATA ORIGINAL "+hoje);</script>

Nesse exemplo acima é possível navegar nas datas em segundos, funciona perfeitamente, olhem o código que estou trabalhando para fazer a data completa, ainda não está funcionando, mas lá vai:

 

<script>		var xdataPrevPgto = new RegExp("([0-9]{2})\/([0-9]{2})\/([0-9]{4})").test(document.cobranca.dataPrevPgto.value); // verifica se a data do form está preenchida de forma correta		if (xdataPrevPgto==true){			dataTmp = document.cobranca.dataPrevPgto.value.split("/"); // explode data			hoje = new Date();			anoCob = hoje.setYear(dataTmp[2]);			mesCob = anoCob.setMonth(dataTmp[1]);			diaCob = mesCob.setDate(dataTmp[0]);			alert(diaCob);		}</script>

Usando o prícinpio do primeiro exemplo tentei registrar primeiro o ano, depois mês e por último o dia ... comecei de trás para frente para evitar dar erro de registrar o dia de um mês errado.

 

Ao registrar o ANO ele funciona, mas para registrar o MES já da erro, estou fuçando para resolver isso, mas acredito que ainda deve haver algum comando q com uma linha se resolva tudo isso.

 

Assim que tiver mais respostas eu posto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!!

 

Lá vai o meu código:

 

<script>	// Verifica se o campo data está no formato correto	var xdataPrevPgto = new RegExp("([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})").test(document.cobranca.dataPrevPgto.value);	// Em caso de TRUE ínicia processo	if (xdataPrevPgto==true){		// Explode campo com a data		dataTmp = document.cobranca.dataPrevPgto.value.split("/");		// Cria variavel com a data de hoje (data do computador do cliente)		hoje = new Date();		// "Seta" a variavel dataTmp com a data e hoja desejada, no caso o do input		hoje.setYear(dataTmp[2]);		hoje.setMonth(parseInt(dataTmp[1])-1);		hoje.setDate(dataTmp[0]);		hoje.setHours(0);		hoje.setMinutes(0);		hoje.setSeconds(0);		hoje.setMilliseconds(0);		// O tempo registrado pelo JS é em milisegundos 		// Converte a data de milisegundos para segundos dividindo por 1000		dataFinal = hoje.getTime()/1000		// Mostra na tela o resultado na tela		alert(dataFinal);	}</script>

Pronto, agora sim... Falei que tinha uma forma mais confiável e mais fácil?? Dessa forma não é necessário calcular se é ano bisexto, se o mês tem 30 ou 31 dias ou coisas do gênero.

 

Notem que no setMonth() eu coloquei um -1, isso ocorre pq para o JS os meses do ano é de 0 à 11 e não de 1 à 12, então fiz essa modificação.

 

Eu achei todas essas informações no livro JS A BIBLIA, mas como não tem muitos exemplos tem q ficar testando e revirando até conseguir o resultado. Caso alguém mais queira alguma informação sobre a manipulação de datas, encontrei um site na net para vocês usarem como referência:

http://pt.wikibooks.org/wiki/java script:_Objeto_Date

 

Valeu pessoal e boa sorte a todos que quiserem se aventurar com as manipulações de datas, ainda acho q deva ter uma forma mais fácil, mas essa já me atendeu.

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae pessoas preciso de um script pra transformar data em segundo peguei o código do cara que passou este:

 

<script>
	// Verifica se o campo data está no formato correto
	var xdataPrevPgto = new RegExp("([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})").test(document.cobranca.dataPrevPgto.value);
	// Em caso de TRUE ínicia processo
	if (xdataPrevPgto==true){
		// Explode campo com a data
		dataTmp = document.cobranca.dataPrevPgto.value.split("/");
		// Cria variavel com a data de hoje (data do computador do cliente)
		hoje = new Date();
		// "Seta" a variavel dataTmp com a data e hoja desejada, no caso o do input
		hoje.setYear(dataTmp[2]);
		hoje.setMonth(parseInt(dataTmp[1])-1);
		hoje.setDate(dataTmp[0]);
		hoje.setHours(0);
		hoje.setMinutes(0);
		hoje.setSeconds(0);
		hoje.setMilliseconds(0);
		// O tempo registrado pelo JS é em milisegundos 
		// Converte a data de milisegundos para segundos dividindo por 1000
		dataFinal = hoje.getTime()/1000
		// Mostra na tela o resultado na tela
		alert(dataFinal);
	}
</script>

e o html como fica?

 

<form name="cobranca" method="post" action="">
<input name="xdataPrevPgto"	id="xdataPrevPgto" type="text" size="8" class="input01"  />
<input type="submit" value="Cadastrar" name="submit" class="input02">
</form>

me ajudem ae please como faço pra que ele calcule enviando os dados pelo html?

MSN: afamilialegal@hotmail.com

grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.