Javascript 我能';我不明白我是什么';我在getDay上做错了

Javascript 我能';我不明白我是什么';我在getDay上做错了,javascript,if-statement,Javascript,If Statement,我想让页面检测是否是星期四,是否显示了一些文本。我不明白为什么这行不通。是不是因为我能在if-than上做=呢?请解释一下,谢谢 <!DOCTYPE html> <html> <body> <p id="demo"></p> <p id="bleh"></p> <script> var day; switch (new Date().g

我想让页面检测是否是星期四,是否显示了一些文本。我不明白为什么这行不通。是不是因为我能在if-than上做=呢?请解释一下,谢谢

    <!DOCTYPE html>
    <html>
    <body>
    <p id="demo"></p>
    <p id="bleh"></p>

    <script>
    var day;
    switch (new Date().getDay()) {
        case 0:
            day = "Sunday";
            break;
        case 1:
            day = "Monday";
            break;
        case 2:
            day = "Tuesday";
            break;
        case 3:
            day = "Wednesday";
            break;
        case 4:
            day = "Thursday";
            break;
        case 5:
            day = "Friday";
            break;
        case  6:
            day = "Saturday";
    }
    document.getElementById("demo").innerHTML = "Today is " + day;
    </script>

   <p id="bleh"></p>

<script>
function myFunction() {
    if(new Date().getDay() == 4)
        document.getElementById("bleh").innerHTML = "Check your grades.";
    }
}
</script>


    </body>
    </html>

var日; 开关(新日期().getDay()){ 案例0: day=“星期日”; 打破 案例1: day=“星期一”; 打破 案例2: day=“星期二”; 打破 案例3: day=“星期三”; 打破 案例4: day=“星期四”; 打破 案例5: day=“星期五”; 打破 案例6: day=“星期六”; } document.getElementById(“demo”).innerHTML=“今天是”+天;

函数myFunction(){ 如果(新日期().getDay()==4) document.getElementById(“bleh”).innerHTML=“检查您的成绩。”; } }
不起作用的部分是这个:


函数myFunction(){
如果(新日期().getDay()==4)
document.getElementById(“bleh”).innerHTML=“检查您的成绩。”;
}
}
另外,我会使用OnTime,但我的网页是从github页面上托管的,所以我无法在那里加载它,这就是我使用这种类型的JS的原因

if (day = 4;) {
请注意单个
=
,您应该在其中使用
=
==
。同时删除分号:

if (day === 4) {
此外,正如评论中指出的,您应该将日期作为字符串进行检查,因为这是您设置的日期

if (day === "Thursday") {

将日期名称存储在这样的数组中不是更好吗

var days = [
  'Sunday',
  'Monday',
  'Tuesday',
  'Wednesday',
  'Thursday',
  'Friday',
  'Saturday'
];

function getCurrentDayName (dayIndex) {
  return days[dayIndex];
}

console.log(getCurrentDayName (new Date ().getDay()))

您可以通过以下方式更轻松地获得一天的名称:

let today=新日期()
demo.innerHTML=
`今天是
${new Intl.DateTimeFormat('en-US',{weekday:'long'})
.format(今天)}`;
让今天=今天。getDay()
bleh.innerHTML=
今天===4?
“检查你的成绩。”
`不是星期四。回来
${(11-今天)%7}
重新检查的天数。`


“这不起作用”什么不起作用?并将
案例6:
更改为
默认值:
,因为如果您检查了所有其他可能性,则它必须为6。此外,在所有情况下都需要一个
中断
,即使是最后一个和默认值。在
if
语句中,使用
if(new Date().getDay()==4)
更新代码,或者将日期存储在某个变量中,就像在switch语句中对day name所做的那样。如果(day=4;)单个
=
是赋值,而不是比较,并且您不需要
,那么也可以调用函数
myFunction()
来实现特定于星期四的函数性
在那里。你有重复的ID。如果你观察用户的代码,你会看到
day
变量包含日期名称,而不是日期索引。所以,这个答案也同样适用。这正是我想要的,谢谢。我唯一的问题是它说“11天后回来重新检查”,我希望它是一个每周周期(7天)。请重新检查。我得承认,我没有在计算的这一部分上花太多心思。你可能想自己仔细检查一下这个公式。
var days = [
  'Sunday',
  'Monday',
  'Tuesday',
  'Wednesday',
  'Thursday',
  'Friday',
  'Saturday'
];

function getCurrentDayName (dayIndex) {
  return days[dayIndex];
}

console.log(getCurrentDayName (new Date ().getDay()))