请教老师这时间年改了后就是修改了原时间对吧,为什么会报错

来源: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回答

好帮手慕码

2019-05-04

同学你好!

这里不需要使用setFullYear()来设置年月日,因为使用new Date()已经是设置好的年月日格式:

http://img.mukewang.com/climg/5cccfb5100012c1c04110046.jpg

http://img.mukewang.com/climg/5cccf951000183f403520025.jpg

使用setFullYear()之后相当于将年月日又转换回去了,转换为一串数字,因此yy.getFullYear()无法转换,导致报错

可以直接调用日期对象:

调用getFullYear()、getMonth()、getDate()方法, 传入入职时间年份(入职年份加3), 入职月份(月份的计算是0-11,因此要减一),入职天数,获取到目标日期对象, Date方法会自动处理超出月份天数的这种情况, 转换到下一个月的一号

可参考如下:

http://img.mukewang.com/climg/5cccfa850001f7b709200333.jpg

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

0

0 学习 · 36712 问题

查看课程