Javascript函数使当前的一周信息无法正常工作

时间:2016-08-25 16:32:18

标签: javascript date

我很久以前创建了这个函数,它显示了当前一天网页所需的信息。

此后我没有更改代码,但它现在显示前一天的信息(例如,星期四它显示了星期三的信息)。

我希望有人可以帮我弄清楚下面这个功能有什么问题:

$(document).ready(function () {
    var dayOfWeek = new Date().getDay();
    $(".menu").hide();

    if (dayOfWeek > 0 && dayOfWeek <= 5 )
        $("#menu" + dayOfWeek).show();
    else
        $("#menu1").show();
});

非常感谢任何帮助。

更新 该功能应该从周一到周五提供信息。 在JSFiddle上它工作正常(https://jsfiddle.net/4rm4swuf/),但在网页的主页上它似乎没有带来正确的日期。 它很适合饲料问题? 但是网站上有另一个页面使用了类似的功能,它可以正常工作。 在这个页面上没有带来&#34; Jueves&#34; / Thursday http://latabladegongora.com/index.php

在此页面上显示&#34; Jueves&#34; / Thurday。 http://latabladegongora.com/menu.php

这表明数据应该没问题。

有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:1)

这个功能似乎对我来说很好,并返回一周中正确的一天。 (即你的函数中的控制台日志今天返回4,这是星期四)。也许确保您的操作系统时间正确?

答案 1 :(得分:1)

JavaScript的Date#getDay()方法返回当天的索引(0-6),其中星期日是第0天,星期六是第6天。

&#13;
&#13;
console.log(['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat'][new Date().getDay()]);
&#13;
&#13;
&#13;

请仔细注意规范中的这一说明(强调我的):

  

返回值
  对应于给定日期的星期几的整数,根据当地时间:0表示星期日,1表示星期一,2表示星期二,依此类推。

它返回的日期将与浏览器中的当前日期相匹配。您可以尝试记录new Date()以验证它认为日期是什么。

答案 2 :(得分:0)

我在逻辑

中发现错误(矛盾)
    if  (dayOfWeek > 0 && dayOfWeek <= 5 )
        // possible values of dayOfWeek are: 1,2,3,4,5
        $("#menu"+dayOfWeek).show();
        // result can also be $("menu1") ...as bellow in the else statement
    else
        $("#menu1").show();