如何获取特定工作日的日期,然后格式化
How to get date for specific weekday and then format
所以我已经能够使用以下代码找到我需要的特定工作日日期(下一个即将到来的星期三):
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.prototype.getDay()
你得到下周三的表达似乎有点复杂,考虑一下:
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 天)。
相关文章:
- 在Javascript中计算两个日期之间的工作日,节假日除外
- 如何从用户输入的日期中获取工作日
- 在jquery日期选择器中禁用日期和特定工作日
- 带额外日期的工作日Javascript
- 如何在javascript中根据周数、工作日和年份获取日期
- 如何计算'工作日'使用moment.js在Javascript中的两个日期之间
- 如何在javascript中获取当前日期的第n个工作日
- 使用 Javascript 从日期中减去工作日
- 如何添加工作日到日期
- 时刻 js 在给定指定工作日的情况下获取下一个日期
- 如何获取特定工作日的日期,然后格式化
- 使用 MomentJS 获取两个日期之间的工作日
- 计算日期之间特定工作日的数量
- 隐藏具体日期,只显示工作日
- 确定日期是周末还是工作日
- 在Javascript中计算日期之间的特定工作日并排除假日
- 自定义工作日日期验证需要实现或识别区域性
- Javascript Date()对于某些日期返回错误的工作日
- 动态获取特定工作日最后发生的日期
- 在日期选择器中启用一天作为工作日