请教老师这时间年改了后就是修改了原时间对吧,为什么会报错
来源:5-10 编程练习
慕函数3852583
2019-05-01 21:57:28
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Math.random()</title>
</head>
<body>
<script>
var year=parseInt(prompt("请输入员工的入职年份"));
var month=parseInt(prompt("请输入员工的入职月份"));
var day=parseInt(prompt("请输入员工的入职时间"));
function x1(year,month,day){
var date=new Date(year,month-1,day);
var yy=date.setFullYear(date.getFullYear()+3);
document.write(yy);
var xx=yy.getFullYear();
var x="该员工入职时间是:"+year+"-"+month+"-"+day;
var y="该员工合同到期时间是:"+xx+"-"+month+"-"+day;
return x+"<br>"+y;
}
document.write(x1(year,month,day));
</script>
</body>
</html>1回答
同学你好!
这里不需要使用setFullYear()来设置年月日,因为使用new Date()已经是设置好的年月日格式:


使用setFullYear()之后相当于将年月日又转换回去了,转换为一串数字,因此yy.getFullYear()无法转换,导致报错
可以直接调用日期对象:
调用getFullYear()、getMonth()、getDate()方法, 传入入职时间年份(入职年份加3), 入职月份(月份的计算是0-11,因此要减一),入职天数,获取到目标日期对象, Date方法会自动处理超出月份天数的这种情况, 转换到下一个月的一号
可参考如下:

如果帮助到了你 欢迎采纳 祝学习愉快~
相似问题