Hướng dẫn calculate the time difference between two times in hours and minutes in javascript - tính toán chênh lệch thời gian giữa hai thời điểm theo giờ và phút trong javascript

Trong JavaScript, làm thế nào tôi có thể tính toán sự khác biệt giữa hai lần ở định dạng 24 giờ?

Ví dụ: Nhận bao nhiêu giờ trôi qua từ 08:00:00 đến 23:00:00.

Dưới đây tôi nhận được hai giá trị thời gian từ hai menu thả xuống và cố gắng tính toán sự khác biệt về giờ giữa hai lần. Tôi nhận được kết quả sai ...

Ví dụ làm việc: http://jsfiddle.net/vnwf7/1/

Script:

$(document).ready(function() {
    function calculateTime() {
             //get values
        var valuestart = $("select[name='timestart']").val();
        var valuestop = $("select[name='timestop']").val();

             //create date format       
        var timeStart = new Date("01/01/2007 " + valuestart);
        var timeEnd = new Date("01/01/2007 " + valuestop);

        var difference = timeEnd - timeStart;            
        var diff_result = new Date(difference);    

        var hourDiff = diff_result.getHours();

        $("p").html("Total Hours: " + hourDiff )          
    }
    $("select").change(calculateTime);
    calculateTime();
});

HTML:





Hướng dẫn calculate the time difference between two times in hours and minutes in javascript - tính toán chênh lệch thời gian giữa hai thời điểm theo giờ và phút trong javascript

hỏi ngày 14 tháng 6 năm 2012 lúc 17:23Jun 14, 2012 at 17:23

CyberjunkiecyberjunkieCyberJunkie

20.6K56 Huy hiệu vàng143 Huy hiệu bạc212 Huy hiệu đồng56 gold badges143 silver badges212 bronze badges

2

Bạn chỉ có thể trừ đi hàng giờ ngay lập tức để làm theo cách này

var valuestart = $("select[name='timestart']").val();
var valuestop = $("select[name='timestop']").val();

//create date format          
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

var hourDiff = timeEnd - timeStart;             

Đây là fiddle hoạt động http://jsfiddle.net/vnwf7/4/

Cập nhật - để tính toán nếu chúng ta bao gồm ngày hôm sau. Chỉ cần thêm thông tin sau nếu khối

 if (hourDiff < 0) {
    hourDiff = 24 + hourDiff;
 }

http://jsfiddle.net/gfvhqat9/

Đã trả lời ngày 14 tháng 6 năm 2012 lúc 17:31Jun 14, 2012 at 17:31

5

Hãy thử theo cách này

var time_start = new Date();
var time_end = new Date();
var value_start = "06:00:00".split(':');
var value_end = "23:00:00".split(':');

time_start.setHours(value_start[0], value_start[1], value_start[2], 0)
time_end.setHours(value_end[0], value_end[1], value_end[2], 0)

time_end - time_start // millisecond 

Đã trả lời ngày 10 tháng 8 năm 2018 lúc 10:45Aug 10, 2018 at 10:45

Hướng dẫn calculate the time difference between two times in hours and minutes in javascript - tính toán chênh lệch thời gian giữa hai thời điểm theo giờ và phút trong javascript

Tôi đã thay đổi mã của bạn thành chỉ sử dụng sự khác biệt mà không phải tạo một đối tượng ngày khác:

$(document).ready(function() {    
function calculateTime() {
        //get values
        var valuestart = $("select[name='timestart']").val();
        var valuestop = $("select[name='timestop']").val();

         //create date format          
         var timeStart = new Date("01/01/2007 " + valuestart);
         var timeEnd = new Date("01/01/2007 " + valuestop);

         var difference = timeEnd - timeStart;             

         difference = difference / 60 / 60 / 1000;


    $("p").html("Hour Difference: " + difference)             

}
$("select").change(calculateTime);
calculateTime();
});​

Đã trả lời ngày 14 tháng 6 năm 2012 lúc 17:32Jun 14, 2012 at 17:32

Peacemakerpeacemakerpeacemaker

2.5233 huy hiệu vàng27 Huy hiệu bạc48 Huy hiệu đồng3 gold badges27 silver badges48 bronze badges

Nó không phải là jQuery mà mọi thứ liên quan đến thời gian và ngày trong JavaScript ...

Điều này có thể giúp: DateJS http://code.google.com/p/datejs/

Đây là một số tính toán ngày và thời gian từ các tài liệu

 Date.today().set({ day: 15 })          // Sets the day to the 15th of the current month and year. Other object values include year|month|day|hour|minute|second.

        Date.today().set({ year: 2007, month: 1, day: 20 })


Date.today().add({ days: 2 })          // Adds 2 days to the Date. Other object values include year|month|day|hour|minute|second.

        Date.today().add({ years: -1, months: 6, hours: 3 })


Date.today().addYears(1)               // Add 1 year.
Date.today().addMonths(-2)             // Subtract 2 months.
Date.today().addWeeks(1)               // Add 1 week
Date.today().addHours(6)               // Add 6 hours.
Date.today().addMinutes(-30)           // Subtract 30 minutes
Date.today().addSeconds(15)            // Add 15 seconds.
Date.today().addMilliseconds(200)      // Add 200 milliseconds.

Date.today().moveToFirstDayOfMonth()   // Returns the first day of the current month.
Date.today().moveToLastDayOfMonth()    // Returns the last day of the current month.

new Date().clearTime()                 // Sets the time to 00:00 (start of the day).
Date.today().setTimeToNow()            // Resets the time to the current time (now). The functional opposite of .clearTime()

EDIT: Vì đây là một câu trả lời khá cũ, gần đây tôi cũng sử dụng khoảnh khắc.js cho các hoạt động liên quan đến ngày, quá hữu ích. http://momentjs.com/ https://github.com/moment/moment/

Đã trả lời ngày 14 tháng 6 năm 2012 lúc 17:33Jun 14, 2012 at 17:33

Hướng dẫn calculate the time difference between two times in hours and minutes in javascript - tính toán chênh lệch thời gian giữa hai thời điểm theo giờ và phút trong javascript

Silverfightersilverfightersilverfighter

6.63210 Huy hiệu vàng44 Huy hiệu bạc72 Huy hiệu đồng10 gold badges44 silver badges72 bronze badges

1

Bạn không cần phải chuyển đổi chúng thành ngày cho trường hợp cụ thể này. Chỉ cần làm điều này

$(document).ready(function() {    
    function calculateTime() { 
        var hourDiff = 
        parseInt($("select[name='timestart']").val().split(':')[0],10) -         
        parseInt($("select[name='timestop']").val().split(':')[0],10);

        $("p").html("Hour Difference: " + hourDiff )         
    }
    $("select").change(calculateTime);
    calculateTime();
});

Làm việc fiddle

Hướng dẫn calculate the time difference between two times in hours and minutes in javascript - tính toán chênh lệch thời gian giữa hai thời điểm theo giờ và phút trong javascript

Đã trả lời ngày 14 tháng 6 năm 2012 lúc 17:36Jun 14, 2012 at 17:36

Làm cách nào để có được sự khác biệt giữa hai lần trong JavaScript?

Cách tiếp cận 1:..
Xác định hai ngày bằng ngày mới () ..
Tính chênh lệch thời gian của hai ngày sử dụng ngày 2. GetTime () - Ngày1. dành thời gian();.
Tính toán không. Trong số các ngày giữa hai ngày, chia chênh lệch thời gian của cả hai ngày cho không. của mili giây trong một ngày (1000*60*60*24).
In kết quả cuối cùng bằng tài liệu. viết()..

Làm thế nào để bạn tìm thấy sự khác biệt giữa giờ và phút?

Để có được sự khác biệt về thời gian trong một đơn vị thời gian (giờ, phút hoặc giây), bạn có thể thực hiện các tính toán sau.Tổng số phút giữa hai lần: để tính số phút giữa hai lần, nhân chênh lệch thời gian với 1440, đó là số phút trong một ngày (24 giờ * 60 phút = 1440).multiply the time difference by 1440, which is the number of minutes in one day (24 hours * 60 minutes = 1440).

Làm thế nào để bạn tìm thấy sự khác biệt về thời gian giữa hai lần?

Tính thời lượng giữa hai lần trước, xác định thời gian bắt đầu và thời gian kết thúc.Mục tiêu là trừ đi thời gian bắt đầu từ thời gian kết thúc trong các điều kiện chính xác.Nếu thời gian chưa có thời gian 24 giờ, hãy chuyển đổi chúng sang thời gian 24 giờ.AM giờ giống nhau trong cả thời gian 12 giờ và 24 giờ.subtract the starting time from the ending time under the correct conditions. If the times are not already in 24-hour time, convert them to 24-hour time. AM hours are the same in both 12-hour and 24-hour time.

Làm thế nào để bạn tìm thấy sự khác biệt giữa hai ngày tính bằng giờ trong một khoảnh khắc?

var thời lượng = meather.duration (end.diff (starttime));var giờ = thời lượng.hours (); duration(end. diff(startTime)); var hours = duration. hours();