简体   繁体   English

JavaScript代码应仅返回当前一周的日期,但跳过第二天

[英]JavaScript code is expected to return days of the current week only, but skips the second day

My JavaScript code is expected to return days of the current week only, but skips the second day. 我的JavaScript代码只能返回当前一周的日期,但会跳过第二天。

Here is the code: 这是代码:

 var curr = new Date; var first = curr.getDate() - curr.getDay(); var first = first + 1; var second = first + 2; var third = first + 3; var fourth = first + 4; var fifth = first + 5; var last = first + 6; var monday = new Date(curr.setDate(first)).toLocaleDateString(); var tuesday = new Date(curr.setDate(second)).toLocaleDateString(); var wednesday = new Date(curr.setDate(third)).toLocaleDateString(); var thursday = new Date(curr.setDate(fourth)).toLocaleDateString(); var friday = new Date(curr.setDate(fifth)).toLocaleDateString(); var sunday = new Date(curr.setDate(last)).toLocaleDateString(); //alert(monday+" "+sunday) document.write(monday + " " + tuesday + " " + wednesday + " " + thursday + " " + friday + " " + sunday) 

this is my output: 5/13/2019 5/15/2019 5/16/2019 5/17/2019 5/18/2019 5/19/2019 ...notice 5/14/2019 is missing, could I get some help with this please? 这是我的输出:5/13/2019 5/15/2019 5/16/2019 5/17/2019 5/18/2019 5/19/2019 ...通知5/14/2019丢失了,我能得到吗对此有帮助吗?

as day 'zero' is Sunday You may have : 由于“零”日是星期日,您可能有:

 var curr = new Date; var zero = curr.getDate() - curr.getDay(); // Sunday - Saturday : 0 - 6 var first = zero + 1; var second = zero + 2; var third = zero + 3; var fourth = zero + 4; var fifth = zero + 5; var last = zero + 6; var monday = new Date(curr.setDate(first)).toLocaleDateString(); var tuesday = new Date(curr.setDate(second)).toLocaleDateString(); var wednesday = new Date(curr.setDate(third)).toLocaleDateString(); var thursday = new Date(curr.setDate(fourth)).toLocaleDateString(); var friday = new Date(curr.setDate(fifth)).toLocaleDateString(); var saturday = new Date(curr.setDate(last)).toLocaleDateString(); document.write( 'monday.....', monday , '<br>' ) document.write( 'tuesday....', tuesday , '<br>' ) document.write( 'wednesday..', wednesday , '<br>' ) document.write( 'thursday...', thursday , '<br>' ) document.write( 'friday.....', friday , '<br>' ) document.write( 'saturday...', saturday , ' ==> ( not sunday ) <br>' ) 
 body { font-family: 'Courier New', Courier, monospace; } 

You are adding 1 to your first day, then incrementing from there incorrectly. 您将第一天加1,然后从那里错误地递增。

 var curr = new Date; var first = curr.getDate() - curr.getDay(); var monday = new Date(curr.setDate(first+1)).toLocaleDateString(); var tuesday = new Date(curr.setDate(first+2)).toLocaleDateString(); var wednesday = new Date(curr.setDate(first+3)).toLocaleDateString(); var thursday = new Date(curr.setDate(first+4)).toLocaleDateString(); var friday = new Date(curr.setDate(first+5)).toLocaleDateString(); var saturday = new Date(curr.setDate(first+6)).toLocaleDateString(); //alert(monday+" "+sunday) document.write(monday + " " + tuesday + " " + wednesday + " " + thursday + " " + friday + " " + saturday) 

You are changing first , and then start adding to it. first要进行更改,然后再开始添加。

Consider this code: 考虑以下代码:

var n = 0;
var n = n+1;
var n2 = n+2;

you will end up with n == 1 and n2 == 3 . 您将得到n == 1n2 == 3

Also, if you were using let instead of var , JavaScript would have caught this error for you. 另外,如果您使用let而不是var ,JavaScript可能会为您捕获此错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM