我无法找到所需的特定日期格式的解决方案,例如
2019年10月31日,星期日。我还需要一个偏移值作为日期。

我能得到的最接近的是2019年10月31日星期日。
我需要能够使用用户输入的数字来抵消日期。
使用下面的脚本,在某些日期,尽管其他日期项返回正确,但日期/名称返回“ undefined”。

Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;}

date = new Date();
offset = effect("Slider Control")("Slider");

dayOffset = offset%7;

myDate = (date.addDays(offset));

dateString = String(myDate);

myMonth = dateString.split(/\s+/).slice(1,3).join(' ');

d = new Date();
days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
myDay = days[d.getDay()+dayOffset];

myDay + ", " + myMonth


我想念什么?你能告诉我吗?

最佳答案

这行:

myDay = days[d.getDay()+dayOffset];


很容易导致访问超出数组末尾,在这种情况下,您将获得值undefined。考虑是否是星期五(第5天),然后添加3。 5 + 3 = 8,但数组的索引最多只能达到6。

要进行环绕,请使用% days.length(如果要对其进行硬编码,则使用% 7;我不会):

myDay = days[(d.getDay() + dayOffset) % days.length];


8%7是1,星期一,实际上是星期五加3。

09-26 05:01