Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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_Html_Css - Fatal编程技术网

设置JavaScript以写入存储是打开还是关闭

设置JavaScript以写入存储是打开还是关闭,javascript,html,css,Javascript,Html,Css,我正在尝试设置一个基本的JavaScript,如果一天是星期天或星期六,它将在HTML中写Closed,或者如果它晚于下午5:30,或者早于上午9:00,它也将写Closed 我的主要问题是if语句似乎总是返回true。我尝试了多种方法来解决这个问题,但都没有效果。任何帮助都将不胜感激 代码:请尝试以下代码: // Place back slashes in front of any grammar, used for checking open or closed based on day a

我正在尝试设置一个基本的JavaScript,如果一天是星期天或星期六,它将在HTML中写Closed,或者如果它晚于下午5:30,或者早于上午9:00,它也将写Closed

我的主要问题是if语句似乎总是返回true。我尝试了多种方法来解决这个问题,但都没有效果。任何帮助都将不胜感激

代码:

请尝试以下代码:

// Place back slashes in front of any grammar, used for checking open or closed based on day and time.
var dayornight = new Date();
var opened = 9;
var closed = [23, 59];
var closedThurs = 19;
var closedWed = 16;
var day = dayornight.getDay();

alert(day);

if(day == 0 || day == 6 || dayornight.getHours() < opened) { 
  if( day == 4 && dayornight.getHours() >= closedThurs || day == 3 && dayornight.getHours() >= closedWed) {
    if(dayornight.getHours() >= closed[0] && dayornight.getMinutes() >= closed[1]){

      document.write("<span class=\"Closed\">Closed</span>");
      alert("Closed is working");

    }
  }
} else {
  document.write("<span class=\"Open\">Open</span>");
  alert("Opened else is working");
}

您正在测试字符串是否包含某些内容:

if("day == 0 || day == 6 || dayornight.getHours() < opened") {}

顺便说一下:请在开发时开始使用带有语法突出显示的代码编辑器。正如您在上面的两个代码片段中所看到的,字符串完全是一种颜色,而代码的不同部分在带有语法高亮显示的编辑器中可能会得到不同的颜色。这在面对此类错误时非常有用。

这不是一个完整的答案,它更像是对代码样式的高级注释

如果你的陈述看起来很复杂,我还是不明白。为了提高代码的可读性。这使您和我们更容易改进它。 例如:

status="opened";

if(date=="wednesday"){
    if(time>closetime){
        status="closed. Its too late";
    }
    if(time<opentime){
        status="closed. youre to early";
    }
} else {
    //code for other dates
}

//echo code
document.write(status);


不要把声明放进去。如果是真的而不是真的,请在你的问题中包含代码,而不是依赖外部站点。js时间基于计算机时间,这是不可靠的。有些人不关心他们的计算机时钟,所以使用服务器时钟+服务器端脚本phpinstead@Jonasw这是上传到github,不能使用php。另外,从中删除语句会导致脚本由于某种原因无法运行。您的代码在任何情况下都无法运行,因为您犯了逻辑错误。试着自己调试它。它现在返回false,但似乎不返回true。@Pepuso,这意味着您的逻辑可能是错误的。请做你的家庭作业。仍然有一个逻辑错误:如果第一个if是真的,但第二个不是真的,它会返回nothing@Jonasw我可以看到这个问题,非常感谢您的帮助。这确实使它返回false。但是,现在它不会返回真值@JonasW确实指出他们的错误是逻辑错误,如果你能帮我找到一些,我将非常感激。@Pepuso请自己做作业。开始学习如何调试代码,并从查找这些bug中获得乐趣。这就是,一个程序员所做的…我确实试着去做。有时我找不到我正在寻找的正确答案。不过,我会考虑这些因素。谢谢。@Pepuso开始在任何可能的地方大量使用console.log。将每个变量打印到控制台,并查看它们的值是否符合您的预期。下一步删除任何条件将它们暂时存储在其他地方,例如,一个空文本文件,然后用您能想到的最简单的条件重新开始。只有一个最简单的条件是工作,开始重新添加更多的代码到它。将开始尝试使这成为一种习惯。我开始意识到我自己是多么容易找到逻辑问题。尽管如此,我还是在倾听并考虑别人告诉我的内容,并将开始使用别人给我的建议。我知道,道歉只不过是在这个论坛上花了不到5周的时间编写代码,而且对这个论坛来说是非常陌生的。再次感谢您的帮助。@Pepuso:不用担心。在这个论坛上有很多人可以帮我做这些,所以我现在有点激动。我仍在学习,所以我理解你的观点,但我通过阅读文档和自己理解来学习。我认为stackoverflow应该专注于高级问题,这些问题是docs+调试无法解决的。我可能应该说我并不真的想为我做答案,只是一些提示让我行动起来:p不管怎样,我感谢你的帮助。@pepuso:那很好。我投其他人一票,因为我认为这是公平的
status="opened";

if(date=="wednesday"){
    if(time>closetime){
        status="closed. Its too late";
    }
    if(time<opentime){
        status="closed. youre to early";
    }
} else {
    //code for other dates
}

//echo code
document.write(status);