【问题标题】:Compare times from converted time format比较转换时间格式的时间
【发布时间】:2016-04-11 17:19:27
【问题描述】:

我有 2 个不同的时间。现在我想比较这两个日期相同的时间。我想检查哪个时间更长。我怎样才能做到这一点。这是我的代码:

start_time = 10:30 AM
end_time = 12:30 PM

function modify_time(){
    var start_time = $('#start_time').val();
    var end_time = $('#end_time').val();
    if (start_time != '' && end_time != '') { 
        alert(start_time); alert(end_time);
        if (end_time <= start_time) {
            alert('select valid time');
            $('#start_time').val('');
            $('#end_time').val('');
        }
    }
}

谢谢。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我希望你正在寻找这样的逻辑:

var start_time = "10:30 AM";
var end_time = "10:20 AM";

start_time = start_time.toLowerCase(); 
end_time = end_time.toLowerCase(); 

function getMin(timeStrin)
{
  var isPM = false;
  if(timeStrin.indexOf("pm") > -1)
     isPM = true;
    
  timeStrin = timeStrin.replace("am","");
  timeStrin = timeStrin.replace("pm","");
  var timeArr =  timeStrin.split(":");
  var hr = parseInt(timeArr[0],10);
  var min = parseInt(timeArr[1],10);
  if(isPM && hr>=1 && hr != 12)
    hr = hr+12;
  
  return (hr*60 + min);
    
}


if (start_time != '' && end_time != '') { 
	
  start_time = getMin(start_time);
  end_time = getMin(end_time);
  alert(start_time); 
	alert(end_time);
	if (end_time <= start_time) {
		alert('select valid time');
	}
}

【讨论】:

    【解决方案2】:

    在两个时间前面添加相同的静态日期并使用下面的编码

    var d=new Date("October 16, 1990 10:30 AM");
    var starttime = d.getTime();
    
    var d=new Date("October 16, 1990 12:30 PM");
    var endtime = d.getTime();
    
    if(start_time!='' && end_time!=''){ alert(start_time); alert(end_time);
                    if(end_time<=start_time){
                        alert('select valid time');
                        $('#start_time').val('');
                        $('#end_time').val('');
                    }
                }
    

    【讨论】:

      【解决方案3】:

      试试这个例子..

      //Set the extracted part of the time to variables. 
      // If you dont have the second part then set it to 0.
      var startHour = extractedStartHour;
      var startMinute = extractedStartMinute;
      var startSecond = extractedStartSecond;
      
      var endHour = extractedEndHour;
      var endMinute = extractedEndMinute;
      var endSecond = extractedEndSecond;
      
      //Create date object and set the time to that
      var startTimeObject = new Date();
      startTimeObject.setHours(startHour, startMinute, startSecond);
      
      //Create date object and set the time to that
      var endTimeObject = new Date(startTimeObject);
      endTimeObject.setHours(endHour, endMinute, endSecond);
      
      //Now we are ready to compare both the dates
      if (startTimeObject > endTimeObject) {
          alert('End time should be after start time.');
      } else {
          alert('Entries are perfect.');
      }
      

      【讨论】:

        【解决方案4】:

        为简单起见,只需转换为数字并为 PM 添加偏移量。 replace(/\D/g,'') 将替换所有非数字字符。

        var startTime = $('#start_time').val();
        var endTime = $('#end_time').val();
        
        var startTimeValue = parseInt(startTime.replace(/\D/g,''));
        var endTimeValue = parseInt(endTime.replace(/\D/g,''));
        
        startTimeValue += startTime.indexOf("PM") > -1 ? 1200 : 0;
        endTimeValue += endTime.indexOf("PM") > -1 ? 1200 : 0;
        
        alert(startTimeValue <= endTimeValue);
        

        【讨论】:

          【解决方案5】:

          试试看

              function modify_time(){
                          var start_time=$('#start_time').val();
                          var end_time=$('#end_time').val();
                          if(start_time!='' && end_time!=''){alert(start_time); alert(end_time);
           var s_time = start_time.split(":");
          var e_time = start_time.split(":");
                             if( s_time[0] > e_time[0]){
                               alert('select valid time');
                                  $('#start_time').val('');
                                  $('#end_time').val('');
                              }else if(s_time[0] == e_time[0]){
                                  if(s_time[1] >=e_time[1]){
                                 alert('select valid time');
                                  $('#start_time').val('');
                                  $('#end_time').val('');
                                  }
                              }
          
                          }
                      }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多