2009-12-22 30 views

Trả lời

15

Thực hiện một chức năng để phân tích một chuỗi như thế vào phút:

function parseTime(s) { 
    var c = s.split(':'); 
    return parseInt(c[0]) * 60 + parseInt(c[1]); 
} 

Bây giờ bạn có thể phân tích các chuỗi và chỉ trừ:

var minutes = parseTime(EndTIme) - parseTime(StartTime); 
+0

Tác phẩm tuyệt vời này !!! .. Cảm ơn – Treby

+0

tác phẩm này..cảm ơn – Sankar

6
var startTime = "0:10"; 
var endTime = "1:20"; 

var s = startTime.split(':'); 
var e = endTime.split(':'); 

var end = new Date(0, 0, 0, parseInt(e[1], 10), parseInt(e[0], 10), 0); 
var start = new Date(0, 0, 0, parseInt(s[1], 10), parseInt(s[0], 10), 0); 

var elapsedMs = end-start; 
var elapsedMinutes = elapsedMs/1000/60; 
2

Nếu bạn đang đi để được làm rất nhiều ngày/giờ thao tác, nó có giá trị kiểm tra ra date.js.

Tuy nhiên, nếu bạn chỉ đang cố gắng giải quyết vấn đề này, thì đây là thuật toán nằm ngoài đầu tôi.

(1) Phân tích bắt đầu/giá trị cuối để có được giờ và phút, (2) Chuyển đổi giờ để phút, (3) Trừ

function DifferenceInMinutes(start, end) { 
    var totalMinutes = function(value) { 
     var match = (/(\d{1,2}):(\d{1,2})/g).exec(value); 
     return (Number(match[1]) * 60) + Number(match[2]); 
    }  
    return totalMinutes(end) - totalMinutes(start); 
} 
+0

tôi đã nhận lỗi: trận đấu is null – Treby

1

dojo.date.difference được xây dựng cho công việc - chỉ yêu cầu một "phút "interval.

Get the difference in a specific unit of time (e.g., number of months, weeks, days, etc.) between two dates, rounded to the nearest integer.

Usage:

var foo: Number (integer)=dojo.date.difference(date1: Date, date2: Date?, interval: String?); 
Các vấn đề liên quan