Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Alguem sabe onde encontro um script que me de a diferença em minutos entre duas datas?
>
pega o timestamp das duas datas, faz uma subtração, e calcule o tempo em minutos.
Vixi sou meio novato com isso, tem como me dar uma ajuda?
você insere só as datas ou coloca o horário tbm..?
http://www.w3schools.com/jsref/jsref_obj_date.asp
quanto mais informação mais preciso será o calculo
Na verdade é colocada as datas
Data inicial 18/09/2012 13:00:00
Data final 19/09/2012 05:00:00
e com isso gostaria do número de minutos, mas mesmo com ajuda de vocês não estou conseguindo fazer
E esses valore que são inseridos são um uma string unica..?
Ou os campos são separados..?
Cada data tem seu campo, as duas datas são no formato dia/mes/ano hora/minuto/segundo
>
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];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');os 2 vem do banco?
select TIME_TO_SEC(data_x - data_y) as deferenca_datas ...
ref.: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
>
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..
pega o timestamp das duas datas, faz uma subtração, e calcule o tempo em minutos.