【问题标题】:javascript - compare current time/date to rangejavascript - 将当前时间/日期与范围进行比较
【发布时间】:2013-08-22 02:46:21
【问题描述】:

我正在寻找一个基本上可以将当前日期时间与列表进行比较的函数。例如,从 8/22/13 的 0700 到 8/29 的 0700,它将返回“Joe Mama - 电话号码 555-5555”,然后从 8/29 的 0700 到 9/5/13 的“0500”,它将返回“安吉爸爸 - 电话号码 555-5555"。这是一个“待命”的时间表。

我能做的最好的事情是获取日期并进行 == 检查,这需要太长时间,并且只会在午夜发生变化。如果我想按小时完成,我必须每周写 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>

【问题讨论】:

  • 您列表中的日期/时间格式是什么?
  • 获取当前日期(我想你知道了),然后编写一个“for”循环来遍历你的列表,如果当前日期在开始日期和结束日期之间,然后拉信息. (currentDate >= listStartDate && currentDate
  • 啊,好电话!!!!没想到。

标签: javascript date time compare


【解决方案1】:

将每个通话开始时间的日期加上一个结束时间放在一个数组中。然后在当前日期大于索引日期时循环遍历数组,或者如果从末尾循环则小于:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-04
    • 2017-05-15
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多