我希望创建一个基本上将当前日期时间与列表进行比较的函数。例如,从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>
答案 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();