2015-12-11 44 views
0

好吧我不能让我的头围绕这个,我查看了很多SF的帖子,但无法弄清楚。
我需要努力争取服务器时间和精力充沛的时间。爪哇脚本时间与给定时间比较

我有尝试这个

  var breackfastCutOffTime = "5:30"; 
      var lunchCutOffTime   = "10:00"; 
      var dinnerCutOffTime  = "17:00"; 


      var serverTime = currentDate.getHours()+ ":" + currentDate.getMinutes();    

      if(Date.parse(toDay) == Date.parse(selectedDate)){ 
       if(serverTime >= breackfastCutOffTime){ 
        document.getElementById("breakfast").disabled = true; 
       }else if(serverTime >= lunchCutOffTime){ 
        document.getElementById("lunch").disabled = true; 
       }else if(serverTime >= dinnerCutOffTime){ 
        document.getElementById("dinner").disabled = true; 
       }   
      } 

我知道这不能比较,因为时间是在文本format.Some一个pleace帮我compleate这一点。

+0

使您的cutofftimes日期字符串,而不是像var var breackfastCutOffTime = new Date(); breackfastCutOffTime.setHours(parseInt函数( '05',10),parseInt函数( '30',10),parseInt函数( '00',10),0);那么比较就会奏效。 – Sp0T

回答

1

参考Date Api获取更多信息。

以下是您的修改代码。我已经评论了几行。

取而代之的日期格式转换为字符串我创建的日期各截止时间的新实例和所需时间设定为:按照你的逻辑

Fiddler link

//var breackfastCutOffTime = "5:30"; 
var breackfastCutOffTime = new Date(); 
breackfastCutOffTime.setHours(5); 
breackfastCutOffTime.setMinutes(30); 

//var lunchCutOffTime   = "10:00"; 
var lunchCutOffTime = new Date(); 
lunchCutOffTime.setHours(10); 
lunchCutOffTime.setMinutes(00); 

//var dinnerCutOffTime = "17:00"; 
var dinnerCutOffTime = new Date(); 
dinnerCutOffTime.setHours(17); 
dinnerCutOffTime.setMinutes(00) 

var serverTime = new Date(); 

//var serverTime = currentDate.getHours()+ ":" + currentDate.getMinutes();    

//if(Date.parse(toDay) == Date.parse(selectedDate)){ 
    if(serverTime >= breackfastCutOffTime){ 
    console.log("breackfastCutOffTime"); 
    //document.getElementById("breakfast").disabled = true; 
    }else if(serverTime >= lunchCutOffTime){ 
    //document.getElementById("lunch").disabled = true; 
    console.log("lunchCutOffTime"); 
    }else if(serverTime >= dinnerCutOffTime){ 
    //document.getElementById("dinner").disabled = true; 
    console.log("dinnerCutOffTime"); 
    }   
//} 

说明修改那个对象。

最后直接比较日期对象。

注意: Date对象根据您的时区进行设置。

2

您可以编写一个函数,将分钟(毫米)的时间(小时:分钟)转换。然后你可以比较两次并相应地进行操作。

伪代码:

function convert(string time) int { 
    //split the time by ':' 
    //convert the string hh,mm to int hour,mm 
    //calculate total minutes 
    //return total minutes 
} 
0

您可以将breackfastCutOffTime,lunchCutOffTime和dinnerCutOffTime传递给下面的函数,如果它们等于或大于当前时间,它将返回true。

function compareTime(timeToCompare) { 
      var currentDate = new Date(); 
      var tempDate = new Date(); 
      var timeToCompareArray = timeToCompare.split(":"); 
      tempDate.setHours(timeToCompareArray[0]); 
      tempDate.setMinutes(timeToCompareArray[1]); 
      if (tempDate >= currentDate) { 
       return true; 
      } else { 
       return false; 
      } 
     }