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

时间:2013-08-22 02:46:21

标签: javascript date time compare

我希望创建一个基本上将当前日期时间与列表进行比较的函数。例如,从2013年8月22日至7月7日至8月29日,它将返回" Joe Mama - 电话号码555-5555"然后从7月29日8月29日到2013年9月5日在" 0500"它将返回" Angie Daddy - 电话号码555-5555"。这是为了#34;随叫随到"时间表。

我能做的最好的事情就是得到日期并做一个==检查,这需要花费太长时间,并且只在午夜更改。如果我想把它做到一个小时,我将不得不每周写168个if / then语句(本周每小时一个)。

有人认为他们可以指出我正确的方向吗?当然不是在找人写代码,我只是不知道要搜索的其他术语。

编辑(太新了,它不会让我回答):

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

我在我的页面的注释中链接的网站(所以我不会丢失它),将时间和日期转换为大纪元时间,但无论出于什么原因,我必须在它给出的时间结束时添加三个零我

希望有道理! 来源:

http://www.epochconverter.com/ http://www.w3schools.com/jsref/jsref_gettime.asp

<HTML>
<script type="text/javascript">

var d = new Date();
var n = d.getTime(); 

document.write(n)


if (n >=  1376913600000 && n <= 1377518400000)
 {
document.write("Joe Momma");
document.write(full)
}
if (n >=  1377518400000 && n <= 1378123200000)
 {
document.write("Angie Daddy");
document.write(full)
 }



</script>
</html>

1 个答案:

答案 0 :(得分:0)

将每个呼叫开始时间的日期加上数组中的结束时间。然后在当前日期大于索引日期的情况下遍历数组,如果从结尾循环,则循环数:

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();