Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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_Date - Fatal编程技术网

Javascript 如何获取特定工作日的日期,然后格式化

Javascript 如何获取特定工作日的日期,然后格式化,javascript,date,Javascript,Date,因此,我能够通过以下代码找到我需要的特定工作日日期(下一个即将到来的星期三): var date = new Date(); date.setDate(date.getDate() + (3 - 1 - date.getDay() + 7) % 7 + 1); 然而,我现在正试图以一种适合我的方式格式化它,但我不知道如何。我试过这个: var date = new Date(); date.setDate(date.getDate() + (3 - 1 - date.getDay() + 7)

因此,我能够通过以下代码找到我需要的特定工作日日期(下一个即将到来的星期三):

var date = new Date();
date.setDate(date.getDate() + (3 - 1 - date.getDay() + 7) % 7 + 1);
然而,我现在正试图以一种适合我的方式格式化它,但我不知道如何。我试过这个:

var date = new Date();
date.setDate(date.getDate() + (3 - 1 - date.getDay() + 7) % 7 + 1);
var day = date.getDay();
var monthNames = ["January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December"];
var month = monthNames[date.getMonth()];
var year = date.getFullYear();
console.log(day, month, year);
但我又得到了今天的日期,我想是因为我又在打getDay/getMonth/getYear。我只想格式化返回到'date'变量的日期,但我不知道如何设置。我也不明白那个日期是如何计算的,因为我是从另一个没有解释的问题中得出的


我希望它显示为“2016年2月10日”,我也不想使用库。

您应该使用
date.getDate()
而不是
date.getDay()

所以你的代码应该是

var day = date.getDate();
getDay()方法根据本地时间返回指定日期的星期几,其中0表示星期天


您应该使用
date.getDate()
而不是
date.getDay()

所以你的代码应该是

var day = date.getDate();
getDay()方法根据本地时间返回指定日期的星期几,其中0表示星期天


下周三你的表情似乎有点复杂,考虑一下:

var x = 3 - date.getDay();
date.setDate(date.getDate() + (x > 0? x : 7 + x));
或者如果你真的想在一行中完成:

date.setDate(date.getDate() + ((3 - date.getDay() + 7)%7 || 7));

如果日期是星期三,则返回下一个星期三(即日期加上7天)。

要获得下一个星期三的表达式似乎有点复杂,请考虑:

var x = 3 - date.getDay();
date.setDate(date.getDate() + (x > 0? x : 7 + x));
或者如果你真的想在一行中完成:

date.setDate(date.getDate() + ((3 - date.getDay() + 7)%7 || 7));

如果日期是星期三,这将返回下一个星期三(即日期加7天)。

谢谢,我认为getDate返回了整个日期。谢谢,我认为getDate返回了整个日期。