好的,我无法理解这一点,我看了很多关于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;
}
}
我知道这不能比较,因为时间是文本格式。有些人请求我补充这一点。
答案 0 :(得分:2)
您可以编写一个仅以分钟(mm)为单位转换时间(hh:mm)的函数。然后你可以比较两次并相应地进行操作。
伪代码:
function convert(string time) int {
//split the time by ':'
//convert the string hh,mm to int hour,mm
//calculate total minutes
//return total minutes
}
答案 1 :(得分:1)
有关详细信息,请参阅Date Api。
以下是您修改过的代码。我评论过几行。根据您的逻辑进行修改
//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 :(得分: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;
}
}