Javascript时间计算从昨天到明天

Javascript time calculating from yesterday to tomorrow

本文关键字:明天 昨天 时间 计算 Javascript      更新时间:2023-09-26

让我来解释一下。我在一个网站上工作,人们记录他们做某事的时间。问题是当某人从23:00到2:00做某事时。我现在的脚本显示是-21小时。

第二个问题是它以小数计算分钟。例如,1:15是1,25。这不是什么大问题,但我的第二个问题是,我能在几分钟内得到结果吗?

对于我的主要问题,我如何设置一个条件,如果从一天到另一天计算24-$result else计算正常?

这是我现在的文件:

    $(function() {
        $("#check").click(function() {
           var start = $(".preveri_ure").val();
           var end = $(".preveri_ure_2").val();
           s = start.split(':');
           e = end.split(':');
           min = e[1]-s[1];
           hour_carry = 0;
           if(min < 0){
               min += 60;
               hour_carry += 1;
           }
           hour = e[0]-s[0]-hour_carry;
           min = ((min/60)*100).toString()
           diff = hour + "," + min.substring(0,2);
            $("#show").text("Task lasted for : " + diff + "hours");
    });
编辑:

开始和结束小时由用户在输入字段中输入,格式如下:开始:7点定于今年

结束

而且时差总是小于24小时。所以不需要日期

如果第一个小时比第二个小时大,则加上第二个24小时。

一个更好的解决方案是从每个JavaScript Date对象中创建一个并减去。

完全同意@Scott Marcus的观点。如果有完整的日期,而不是只有小时和分钟,比较起来更容易。

但是从@Studio DnB的角度来看,让我们考虑开始时间和结束时间属于同一天。

起始时间必须小于结束时间。

这里是代码

var tempStartDate = new Date(); // just inintialise start and end date
var tempEndtDate = new Date();      
s = date1.split(':');
e = date2.split(':');
tempStartDate.setHours(s[0], s[1], 0); // set Hours and Minutes for start and end date
tempEndtDate.setHours(e[0], e[1], 0);
var startTime ;
var endTime ;
  // compare to make start time less then end time always for same day log
if (tempEndtDate.getTime() > tempStartDate.getTime()){
      endTime = tempEndtDate.getTime();
      startTime= tempStartDate.getTime();
  }
else {
      endTime = tempStartDate.getTime();
     startTime= tempEndtDate.getTime();
 }
  var difference = endTime - startTime;
  var hoursDifference = Math.floor(difference/1000/60/60);
    difference -= hoursDifference*1000*60*60
    var minutesDifference = Math.floor(difference/1000/60);
    difference -= minutesDifference*1000*60

示例在https://jsfiddle.net/fNPvf/32377/

我将要求用户输入日期和时间,并使用Javascript UTC将特定的dateTime转换为1970年1月1日以来的秒数。http://www.w3schools.com/jsref/jsref_utc.asp然后计算startDate - endDate并转换为分钟。