月份加1的问题

月份加1的问题

	<script type="text/javascript">
	var year=parseInt(prompt("请输入入职的年"));
	var month=parseInt(prompt("请输入入职的月"));
	var date=parseInt(prompt("请输入入职的日"));
		function staff(year,month,date){
			var now=new Date(year,month,date);
			var after=new Date(year+3,month,date);
			document.write("该员工入职时间是: "+ year+'-'+month+'-'+date+'<br/>');
		document.write("该员工的合同到期时间是: "+after.getFullYear()+'-'+after.getMonth()+'-'+after.getDate());
		}
		staff(year,month,date);
		
	</script>

http://img1.sycdn.imooc.com/climg//5952e7560001460409300542.jpg

http://img1.sycdn.imooc.com/climg//5952e756000179c309360638.jpg


getMonth():返回日期中的月份,返回值为0-11,为何4月份一样的,我没加1,但是12月份就是0 了???


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

因为在Date对象中,月份的表示值是介于 0(一月) ~ 11(十二月) 之间。所以设置的时候,传入月份要值减去1,才能与0-11的表示方法匹配,获取月份值时,要加上1,才能符合我们的实际认知。http://img1.sycdn.imooc.com/climg//595321080001b1db14460309.jpg

  • OlafChou 提问者 #1
    非常感谢!
    2017-06-28 23:02:02
提问者 OlafChou 2017-06-28 07:38:00
	<script type="text/javascript">
	var year=parseInt(prompt("请输入入职的年"));
	var month=parseInt(prompt("请输入入职的月"));
	var date=parseInt(prompt("请输入入职的日"));
		function staff(year,month,date){
			var now=new Date(year,month,date);
			var after=new Date(year+3,month-1,date);
			document.write("该员工入职时间是: "+ year+'-'+now.getMonth()+'-'+date+'<br/>');
		document.write("该员工的合同到期时间是: "+after.getFullYear()+'-'+(after.getMonth()+1)+'-'+after.getDate());
		}
		staff(year,month,date);
		
	</script>


我后来又优化了一个版本,但是now.getmonth()得到的数值就是我输入的数值,这是为何,没有减一,已经搞晕

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师