【问题标题】:Jquery - Get the time in HH:MM format between two datesJquery - 以 HH:MM 格式获取两个日期之间的时间
【发布时间】:2012-01-17 07:58:24
【问题描述】:

我从两个文本字段中获取值作为日期

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

赋予价值

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

现在我想找出这两个日期之间的 HH:MM 格式的持续时间(在本例中为 25:00) 我该怎么做...

【问题讨论】:

标签: javascript jquery jquery-ui-datepicker


【解决方案1】:
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);

查看演示:http://jsfiddle.net/diode/nuv7t/5/(在 jsfiddle 中更改 mootools 或打开http://jsfiddle.net/nuv7t/564/)

【讨论】:

  • 你的 jsFiddle 死了
  • jsfiddle 环境中的一些问题。我添加了新链接。
【解决方案2】:

工作示例:

在 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());
});

【讨论】:

    【解决方案3】:

    首先,我推荐这个:http://www.mattkruse.com/javascript/date/ 将字符串转换为日期对象,但您可以以任何方式转换它。转换后,您可以这样做:

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

    getTime() 函数获取自 1970/01/01 以来的毫秒数。现在你有了毫秒数的差异,你可以做任何你想做的转换为更高的数字(例如,除以 1000 秒,除以 60 分钟,除以 60 小时,等等)

    【讨论】:

      【解决方案4】:

      我在博客上做了一些类似的事情,看看我和我的女朋友在一起多久了:P http://daystogether.blogspot.com/ 我就是这样做的:

      // *****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 );
      

      顺便说一句,这只是 javascript,没有 jquery ;)

      【讨论】:

        【解决方案5】:

        给你:

        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);
        

        【讨论】:

          【解决方案6】:
          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;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-06-22
            • 2012-03-24
            • 2017-05-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多