JS中如何判断一个时间范围。

wolf1947 2011-06-27 03:18:57
比如现在当前时间是2:00,范围时间是8:00 -23:00 !
现在有三个变量,一个是当前时间 var DateTime , 开始时间是var BeginTime ,结束时间var EndTime
如果我当前时间不在范围时间内,就返回Ture 否则返回false
请教下大侠!
...全文
1947 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolf1947 2011-06-27
  • 打赏
  • 举报
回复
var b = parseInt(ar_begin[0]) * 60 + parseInt(ar_begin[1]);
这个B的值老是0啊~~还是有问题啊!
乌镇程序员 2011-06-27
  • 打赏
  • 举报
回复
你的时分分隔符是中文冒号?
var ar = ['8:00','23:00'];
function checkTime(ar) {
var d = new Date();
var current = parseInt(d.getHours()) * 60 + parseInt(d.getMinutes());
var ar_begin = ar[0].split(':');
var ar_end = ar[1].split(':');
var b = parseInt(ar_begin[0]) * 60 + parseInt(ar_begin[1]);
var e = parseInt(ar_end[0]) * 60 + parseInt(ar_end[1]);
if (current >= b && current <= e) return true;
else return false;
}
alert(checkTime(ar));
wolf1947 2011-06-27
  • 打赏
  • 举报
回复
你把你的代码拿着调试就知道了~~我调试了的~反正好像分隔时间字符串有问题啊!
wolf1947 2011-06-27
  • 打赏
  • 举报
回复
var current = d.getHours() * 60 + d.getMinutes();
得不到自己想要的数据
乌镇程序员 2011-06-27
  • 打赏
  • 举报
回复
你的数据是怎么样的?
wolf1947 2011-06-27
  • 打赏
  • 举报
回复
5楼的方法不能用啊?是个错的啊~我刚刚调试了~
zell419 2011-06-27
  • 打赏
  • 举报
回复

var checkTime = function(dateTime ,beginTime ,endTime){
var bd = Date.parse("2011/1/1 "+beginTime);
var ed = Date.parse("2011/1/1 "+endTime);
var nd = Date.parse("2011/1/1 "+dateTime);
return nd>bd&&nd<ed;
}
alert(checkTime("22:59", "9:00","23:00"));
挨踢直男 2011-06-27
  • 打赏
  • 举报
回复
 var curr = "2:01";
var begin = "8:02";
var end = "23:03";
var currd = new Date("2000","1","1",curr.split(":")[0],curr.split(":")[1]);
var begind = new Date("2000","1","1",begin.split(":")[0],begin.split(":")[1]);
var endd = new Date("2000","1","1",end.split(":")[0],end.split(":")[1]);

if(currd>=begind && currd<=endd)
{
alert("在范围内")
}

else
{
alert("不在范围内")
}
乌镇程序员 2011-06-27
  • 打赏
  • 举报
回复
if (current >= b && current <= e) return true;
//改为
if (current > b && current < e) return true;
乌镇程序员 2011-06-27
  • 打赏
  • 举报
回复
var ar = ['8:00','23:00'];
function checkTime(ar) {
var d = new Date();
var current = d.getHours() * 60 + d.getMinutes();
var ar_begin = ar[0].split(':');
var ar_end = ar[1].split(':');
var b = parseInt(ar_begin[0]) * 60 + parseInt(ar_begin[1]);
var e = parseInt(ar_end[0]) * 60 + parseInt(ar_end[1]);
if (current >= b && current <= e) return true;
else return false;
}
alert(checkTime(ar));
灬上海爽爷 2011-06-27
  • 打赏
  • 举报
回复
JS比较时间直接用> <就可以了呀。只要是日期对象的话
wolf1947 2011-06-27
  • 打赏
  • 举报
回复
是啊~只考虑时分数据啊!
DateTime >BeginTime&&DateTime <EndTime
如果DateTime是23:30 还小于EndTime吗?当然不是这个啊
zell419 2011-06-27
  • 打赏
  • 举报
回复
DateTime >BeginTime&&DateTime <EndTime

是这个意思么 ?
乌镇程序员 2011-06-27
  • 打赏
  • 举报
回复
只考虑时分数据?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧