2012-01-17 4 views
5

sto ottenendo i valori di due campi di testo come dataJquery - Prendi il tempo in formato HH: MM tra due date

var start_actual_time = $("#startPoint_complete_date").val(); 
var end_actual_time = $("#endPoint_complete_date").val(); 

che dà un valore

start_actual_time = 01/17/2012 11:20 
end_actual_time = 01/18/2012 12:20 

ora voglio scoprire la durata in HH: formato MM tra queste due date (che in questo caso è 25:00) come posso farlo ...

+0

controllare questo link http: // StackOverflow .com/domande/2609513/jquery-calcolo-day-differen ce-in-2-Date-caselle di testo –

+0

sguardo [qui] [1] e [qui] [2] [1]: http://stackoverflow.com/questions/327429/whats- the-best-way-to-calcolare-date-difference-in-javascript [2]: http://stackoverflow.com/questions/175554/how-to-convert-milliseconds-into-human-readable-form –

+0

non hai bisogno anche di giorni? – redmoon7777

risposta

10
var start_actual_time = "01/17/2012 11:20"; 
var end_actual_time = "01/18/2012 12:25"; 

start_actual_time = new Date(start_actual_time); 
end_actual_time = new Date(end_actual_time); 

var diff = end_actual_time - start_actual_time; 

var diffSeconds = diff/1000; 
var HH = Math.floor(diffSeconds/3600); 
var MM = Math.floor(diffSeconds%3600)/60; 

var formatted = ((HH < 10)?("0" + HH):HH) + ":" + ((MM < 10)?("0" + MM):MM) 
alert(formatted); 

See demo: http://jsfiddle.net/diode/nuv7t/5/

0

Innanzitutto, mi raccomando: http://www.mattkruse.com/javascript/date/ per convertire la stringa in data ob ject, ma puoi convertirlo come preferisci. Una volta convertito, si può fare questo:

var difference_datetime = end_datetime.getTime() - start_datetime.getTime() 

La funzione getTime() ottiene il numero di millisecondi dal 1970/01/01. Ora hai il numero di millisecondi di differenza e puoi fare tutto ciò che vuoi convertire in numeri più alti (ad esempio dividere per 1000 per secondi, dividerlo per 60 per minuti, dividerlo per 60 per ore, ecc.)

0

ho fatto qualcosa simular su un blog per vedere quanto tempo im insieme con la mia fidanzata: P http://daystogether.blogspot.com/ e questo è come ho fatto:

// *****Set the unit values in milliseconds.***** 

var msecPerMinute = 1000 * 60; 
var msecPerHour = msecPerMinute * 60; 
var msecPerDay = msecPerHour * 24; 

// *****Setting dates***** 

var today = new Date(); 
var startDate = new Date('10/27/2011 11:00:00'); 

// *****Calculate time elapsed, in MS***** 
var interval = today.getTime() - startDate.getTime(); 

var days = Math.floor(interval/msecPerDay); 
interval = interval - (days * msecPerDay); 

var weeks = 0; 
while(days >= 7) 
{ 
days = days - 7; 
weeks = weeks + 1; 
} 

var months = 0; 
while(weeks >= 4) 
{ 
weeks = weeks - 4; 
months = months + 1; 
} 


// Calculate the hours, minutes, and seconds. 
var hours = Math.floor(interval/msecPerHour); 
interval = interval - (hours * msecPerHour); 

var minutes = Math.floor(interval/msecPerMinute); 
interval = interval - (minutes * msecPerMinute); 

var seconds = Math.floor(interval/1000); 

BTW questo è solo javascript, senza jQuery;)

0

qui vai:

function get_time_difference(start,end) 
{    
    start = new Date(start); 
    end = new Date(end); 
    var diff = end.getTime() - start.getTime();     
    var time_difference = new Object(); 

    time_difference.hours = Math.floor(diff/1000/60/60);   
    diff -= time_difference.hours*1000*60*60; 
    if(time_difference.hours < 10) time_difference.hours = "0" + time_difference.hours; 

    time_difference.minutes = Math.floor(diff/1000/60);  
    diff -= time_difference.minutes*1000*60;  
    if(time_difference.minutes < 10) time_difference.minutes = "0" + time_difference.minutes;         

    return time_difference;    
} 

var time_difference = get_time_difference("01/17/2012 11:20", "01/18/2012 12:20"); 

alert(time_difference.hours + ":" + time_difference.minutes); 
0
start_date.setTime(Date.parse(start_actual_time)); 
end_date.setTime(Date.parse(end_actual_time)); 

//for check 
start_date.toUTCString() 
end_date.toUTCString() 

/** 
* Different in seconds 
* @var diff int 
*/ 

var diff = (end_date.getTime()-start_date.getTime())/1000; 
1

esempio di lavoro:

dà messaggio di avviso come 6:30

$(function(){ 
    var startdate=new Date("01/17/2012 11:20"); 
    var enddate=new Date("01/18/2012 12:20"); 
    var diff = new Date(enddate - startdate); 
    alert(diff.getHours()+":"+diff.getMinutes()); 
});