2013-08-26 42 views
5

Tôi đã cố gắng nhận chênh lệch thời gian giữa 2 lần khác nhau và tôi nhận được sự chính xác trong giờ và phút. Nhưng nếu thứ hai lớn hơn lần đầu tiên nó sẽ nhận được vấn đề. Thời gian hiển thị với dữ liệu tiêu cực.Nhận chênh lệch thời gian giữa hai lần trong javascript

ví dụ

Start time : 00:02:59 
End time : 00:05:28 

Nếu tôi nhận được sự khác biệt giữa đầu và cuối thời gian

00:05:28 - 00:02:59 = 00:3:-31 

Mà không phải là một giá trị chính xác. Tôi đang sử dụng tập lệnh sau đây để nhận giá trị này.

var start_time = $("#startTime").val(); 
var end_time = $("#endTime").val(); 
var startHour = new Date("01/01/2007 " + start_time).getHours(); 
var endHour = new Date("01/01/2007 " + end_time).getHours(); 
var startMins = new Date("01/01/2007 " + start_time).getMinutes(); 
var endMins = new Date("01/01/2007 " + end_time).getMinutes(); 
var startSecs = new Date("01/01/2007 " + start_time).getSeconds(); 
var endSecs = new Date("01/01/2007 " + end_time).getSeconds(); 
var secDiff = endSecs - startSecs; 
var minDiff = endMins - startMins; 
var hrDiff = endHour - startHour; 
alert(hrDiff+":"+minDiff+":"+secDiff); 

ai vui lòng cho tôi biết làm thế nào để có được sự chênh lệch thời gian giữa hai lần một cách chính xác thậm chí xem xét với giây

+0

bạn có thể chuyển đổi chúng thành giây đầu tiên hoặc thậm chí tốt hơn để milis econds, làm số học của bạn và chuyển đổi chúng trở lại định dạng của bạn. – kangoroo

+0

nhưng nếu tôi làm điều đó, nó cũng sẽ ảnh hưởng đến phút. Tôi muốn có thời gian với định dạng "HH: MM: SS" – Kalai

+0

Các phiên bản ffmpeg gần đây có tùy chọn '-to' để bạn không phải tính toán thời gian cho tham số' -t'. Xem: http://ffmpeg.org/ffmpeg-all.html#Main-options – slhck

Trả lời

-6

Hãy thử làm điều này

var date1 = new Date(2000, 0, 1, 9, 0); // 9:00 AM 
    var date2 = new Date(2000, 0, 1, 17, 0); // 5:00 PM 
    if (date2 < date1) { 
     date2.setDate(date2.getDate() + 1); 
    } 
    var diff = date2 - date1; 
    // 28800000 milliseconds (8 hours) 

Sau đó bạn có thể chuyển đổi mili giây để giờ, phút và giây như thế này:

var msec = diff; 
    var hh = Math.floor(msec/1000/60/60); 
    msec -= hh * 1000 * 60 * 60; 
    var mm = Math.floor(msec/1000/60); 
    msec -= mm * 1000 * 60; 
    var ss = Math.floor(msec/1000); 
    msec -= ss * 1000; 
    // diff = 28800000 => hh = 8, mm = 0, ss = 0, msec = 0 
+1

Câu trả lời đầy đủ: http://stackoverflow.com/a/1788084/529544 – JDandChips

+0

là downvotes vì ​​sao chép và dán? – metalim

Các vấn đề liên quan