Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-将当前时间/日期与范围进行比较_Javascript_Date_Time_Compare - Fatal编程技术网

javascript-将当前时间/日期与范围进行比较

javascript-将当前时间/日期与范围进行比较,javascript,date,time,compare,Javascript,Date,Time,Compare,我想做一个功能,将基本上比较当前的日期时间列表。例如,从2013年8月22日0700点到2013年8月29日0700点,它将返回“Joe Mama-电话号码555-5555”,然后从2013年8月29日0700点到2013年9月5日0500点,它将返回“Angie Daddy-电话号码555-5555”。这是一个“随叫随到”的时间表 我所能做的最好的事情就是得到日期并做一个==检查,这花费了我太长的时间,只在午夜改变。如果我想把时间缩短到一小时,我必须每周写168条If/then语句(一周中每小

我想做一个功能,将基本上比较当前的日期时间列表。例如,从2013年8月22日0700点到2013年8月29日0700点,它将返回“Joe Mama-电话号码555-5555”,然后从2013年8月29日0700点到2013年9月5日0500点,它将返回“Angie Daddy-电话号码555-5555”。这是一个“随叫随到”的时间表

我所能做的最好的事情就是得到日期并做一个==检查,这花费了我太长的时间,只在午夜改变。如果我想把时间缩短到一小时,我必须每周写168条If/then语句(一周中每小时一条)

有人认为他们能给我指出正确的方向吗?当然不是找人写代码,我只是不知道还有什么其他的搜索条件

编辑(太新,不允许我回答):

非常感谢ergwin的帮助!对于任何想找这样的东西的人来说,这里有一些最简单的方法(不是最好的,但是很有效)。将时间转换为大纪元时间(如果您不熟悉,请使用维基百科)。虽然进行转换有点痛苦,但比较要简单得多

我在页面注释中链接的站点(这样我就不会丢失它)将时间和日期转换为纪元时间,但出于任何原因,我不得不在它给我的时间末尾加上三个零

希望这是有意义的! 资料来源:


var d=新日期();
var n=d.getTime();
文件。写入(n)

如果(n>=1376913600000&&n=1377518400000&&n将每个待命开始时间的日期加上一个结束时间放在一个数组中。然后在当前日期大于索引日期时在数组中循环,如果从末尾循环,则在数组中循环:

function whosoncall(){
    var oncall= [[1377068400000, 'Joe Mama', '555-5555'], 
    [1377759600000, 'Angie Daddy', '555-5555'], 
    [1378357200000, 'Some Body', '555-5555'], 
    [1378789200000, 'End coverage']];
    var L= oncall.length-1, 
    D= new Date().getTime();

    if(D<oncall[0][0] || D>oncall[L][0]) throw new Error('No oncall for this date');

    while(L && D<oncall[L][0])--L;

    return oncall[L][1]+' phone: '+oncall[L][2];
}
whosoncall();
函数whosoncall(){
变量oncall=[[137706840000,'乔妈妈','555-5555'],
[1377759600000,'Angie Daddy','555-5555'],
[1378357200000,'一些身体','555-5555'],
[13789200000,‘最终覆盖’];
变量L=oncall.length-1,
D=新日期().getTime();
if(Doncall[L][0])抛出新错误(“此日期无oncall”);

while(L&&d)列表上的日期/时间格式是什么?获取当前日期(我想你已经知道了),然后写一个“for”循环来遍历列表,如果当前日期介于开始日期和结束日期之间,则提取信息。(currentDate>=listStartDate&¤tDate啊哈,好主意!!!!我甚至没有想到这一点。
function whosoncall(){
    var oncall= [[1377068400000, 'Joe Mama', '555-5555'], 
    [1377759600000, 'Angie Daddy', '555-5555'], 
    [1378357200000, 'Some Body', '555-5555'], 
    [1378789200000, 'End coverage']];
    var L= oncall.length-1, 
    D= new Date().getTime();

    if(D<oncall[0][0] || D>oncall[L][0]) throw new Error('No oncall for this date');

    while(L && D<oncall[L][0])--L;

    return oncall[L][1]+' phone: '+oncall[L][2];
}
whosoncall();