Ir para conteúdo

POWERED BY:

Arquivado

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

Andryon PHProgrammer

Diferença em minutos entre duas datas

Recommended Posts

pega o timestamp das duas datas, faz uma subtração, e calcule o tempo em minutos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cada data tem seu campo, as duas datas são no formato dia/mes/ano hora/minuto/segundo

 

Olha eu tenho um codigo que eu acho que pode funcionar pra você..

Ele recebe duas datas (data1 e data2), e faz a subtração entre elas, esse resultado é dado em milisegundos e por fim é convertido, eu uso ela pra retornar dias, mas uma mudançinha que eu fiz pode trazer o resultado em minutos pra você..

Td é questão dos valores que são multiplicados no final

 

function Atraso(data1,data2){
  var diferenca = Date.UTC(data2.getYear(),(data2.getMonth()+1),data2.getDate(),0,0,0) - Date.UTC(data1.getYear(),data1.getMonth(),data1.getDate(),0,0,0);;
  alert(diferenca);
}

 

Os campos que estão com 0 são respectivamente hora, minutos e segundos, ai é só você seguir a ideia completando com datax.getHour(), onde x é a data que você ta trabalhando no momento.

Pra separar os campos das datas eu usei um split.

 

A chamada da função fica assim

 

Atraso(new Date(ano1, mes1, dia1),new Date(ano2, mes2, dia2));

 

E o split é assim:

 

var separa1 = String(data).split("/");
var separa2 = String(data).split("/");
  dia1 = separa1[0];
  mes1 = separa1[1];
  ano1 = separa1[2];
  dia2 = separa2[0];
  mes2 = separa2[1];
  ano2 = separa2[2];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei da seguinte maneira mas não consegui:

 

Atraso('01/10/2012','02/10/2012');

function Atraso(data1,data2){
var separa1 = String(data1).split("/");
var separa2 = String(data2).split("/");
dia1 = separa1[0];
mes1 = separa1[1];
ano1 = separa1[2];
dia2 = separa2[0];
mes2 = separa2[1];
ano2 = separa2[2];

var diferenca = Date.UTC(ano2.getYear(),(mes2.getMonth()+1),dia2.getDate(),0,0,0) - Date.UTC(ano1.getYear(),mes1.getMonth(),dia1.getDate(),0,0,0);;
alert(diferenca);
}

 

na verdade a chamada deveria ficar Atraso('01/10/2012 10:00:00','02/10/2012 10:00:00');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei da seguinte maneira mas não consegui:

 

Atraso('01/10/2012','02/10/2012');

function Atraso(data1,data2){
var separa1 = String(data1).split("/");
var separa2 = String(data2).split("/");
dia1 = separa1[0];
mes1 = separa1[1];
ano1 = separa1[2];
dia2 = separa2[0];
mes2 = separa2[1];
ano2 = separa2[2];

var diferenca = Date.UTC(ano2.getYear(),(mes2.getMonth()+1),dia2.getDate(),0,0,0) - Date.UTC(ano1.getYear(),mes1.getMonth(),dia1.getDate(),0,0,0);;
alert(diferenca);
}

 

na verdade a chamada deveria ficar Atraso('01/10/2012 10:00:00','02/10/2012 10:00:00');

 

Faltou uma linha a que faz um calculo final, desculpe.. Depois do calculo da diferença, vem essa linha aqui:

 

var fim = Math.floor(diferenca / (1000 * 60));

 

E sobre a chamada, como eu num sei qual é o formato da saida de dados que você usa fica dificil, mas você pegou o jeito, só tem que ver um split que separe todos os argumentos que você quer usar.. E então adicionar no calculo..

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.