获取月份,但需要在年底使用javascript重置

获取月份,但需要在年底使用javascript重置,javascript,Javascript,我希望你能帮我。我正试图创建一个脚本,将得到一个月,但需要在年底重置。目的是让用户知道一项服务将在一个月内结束。我所拥有的一切都很好,直到年底。我很难想出计算年底的解决方案,导致脚本重置为1月份。我希望我正在努力做的事情。感谢您的帮助。这是我到目前为止所拥有的 var months = ["January", "February", "March", "April", "May","June","July","August","September","October","November","

我希望你能帮我。我正试图创建一个脚本,将得到一个月,但需要在年底重置。目的是让用户知道一项服务将在一个月内结束。我所拥有的一切都很好,直到年底。我很难想出计算年底的解决方案,导致脚本重置为1月份。我希望我正在努力做的事情。感谢您的帮助。这是我到目前为止所拥有的

var months = ["January", "February", "March", "April", 
"May","June","July","August","September","October","November","December"]
var d = new Date();
var mon = d.getMonth()+1;
var oneMonth = months[mon];

使用
%
重置:

var mon = (d.getMonth()+1)%months.length;
var月=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
];
var dt=新日期('2018/11/20');
日志(月[((dt.getMonth()+1)%month.length)];
日志(月[((dt.getMonth()+2)%month.length)];

日志(月[((dt.getMonth()+3)%month.length)]使用
%
重置:

var mon = (d.getMonth()+1)%months.length;
var月=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
];
var dt=新日期('2018/11/20');
日志(月[((dt.getMonth()+1)%month.length)];
日志(月[((dt.getMonth()+2)%month.length)];
日志(月[((dt.getMonth()+3)%month.length)]
使用
%
操作符将偏移量环绕阵列。模数是一个非常重要的数组工具,因为您可以添加任何偏移量,并且将保持在有效数组索引0-11的范围内

在你的例子中,
(11+1)%12===0
其中
11
是12月,
0
是1月,
1
是你想要进入未来的月数,
12
是一年中的月数

var月=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var d=新日期();
var mon=d.getMonth()+1;
var oneMonth=月[mon%月.length];
console.log(周一,一个月)
使用
%
操作符将偏移量环绕阵列。模数是一个非常重要的数组工具,因为您可以添加任何偏移量,并且将保持在有效数组索引0-11的范围内

在你的例子中,
(11+1)%12===0
其中
11
是12月,
0
是1月,
1
是你想要进入未来的月数,
12
是一年中的月数

var月=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var d=新日期();
var mon=d.getMonth()+1;
var oneMonth=月[mon%月.length];

console.log(周一,一个月)其他答案为您提供了一种使用普通javascript实现这一点的方法;如果您对使用库感兴趣,那么这是一个不错的选择,并且使处理日期变得非常容易

const{
作语法分析
加上几个月,
上个月,
}=日期fns;
常量月份=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
const newDate=getMonth(addMonths(
解析(新日期()),
1.
))
const janDate=getMonth(addMonths(
解析(新日期()),
4.
))
console.dir(月份[新日期])
console.dir(月份[一月日期])

其他答案为您提供了一种使用香草javascript实现这一点的方法;如果您对使用库感兴趣,那么这是一个不错的选择,并且使处理日期变得非常容易

const{
作语法分析
加上几个月,
上个月,
}=日期fns;
常量月份=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
const newDate=getMonth(addMonths(
解析(新日期()),
1.
))
const janDate=getMonth(addMonths(
解析(新日期()),
4.
))
console.dir(月份[新日期])
console.dir(月份[一月日期])

我不清楚什么需要在哪里重置。作为旁注,getMonth()返回一个从0到11的值,因此在表达式months[mon]中永远不会得到“一月”,因为您要将1添加到getMonth()…并且由于它返回0-11,它与您已经拥有的数组完全匹配…@deceze这个问题并不清楚。OP正在尝试向月份添加一个。@deceze但我们没有看到
months[d.getMonth()]
;我们看到
月[d.getMonth()+1]
。这可能超出了范围。我不清楚需要在何处重置什么。由于旁注getMonth()返回一个从0到11的值,因此在表达式Month[mon]中永远不会得到“一月”,因为您要将1添加到getMonth()……并且由于它返回0-11,它与您已有的数组完全匹配…@deceze这个问题并不清楚。OP正在尝试向月份添加一个。@deceze但我们没有看到
months[d.getMonth()]
;我们看到
月[d.getMonth()+1]
。这可能超出了范围。您知道
getMonth
将返回一个范围为0-11的整数,并且数组包含索引0-11…?什么时候需要模数?@如果目标是在下个月输出,请标记……好的,当然。我宁愿把
mon
放在后面,尽管它总是在0-11范围内。@deceze我似乎很清楚,目标是在下个月输出。这并不总是
0-11
var mon=d.getMonth()+1
@Mark这就是我要说的:在那一行应用模,这样
mon
将始终在0-11范围内。当然@deceze,但是,我认为无论你是在那一行添加模还是像这个答案那样索引到数组中,都是风格问题。你知道
getMonth
将返回一个0-11范围内的整数,数组包含索引0-11…?什么时候需要模数?@如果目标是在下个月输出,请标记……好的,当然。我宁愿把
mon
包起来,然后再包起来