用js进行日期的加减

如题,开始查了查js的使用文档,但没发现可以直接用的函数,于是就想自己写函数来着,这就要涉及到每个月天数的判断,如果是2月份的话,还要涉及到闰年的判断,虽然不复杂但我想js应该不会这么低级,于是查了下资料,终于有了如下重大发现,以在某个日期上加减天数来说,其实只要调用Date对象的setDate()函数就可以了,具体方法如下: 
     function addDate(date,days){ 
       var d=new Date(date); 
       d.setDate(d.getDate()+days); 
       var m=d.getMonth()+1; 
       return d.getFullYear()+'-'+m+'-'+d.getDate(); 
     } 
其中,date参数是要进行加减的日期,days参数是要加减的天数,如果往前算就传入负数,往后算就传入正数,如果是要进行月份的加减,就调用setMonth()和getMonth()就可以了,需要注意的是返回的月份是从0开始计算的,也就是说返回的月份要比实际月份少一个月,因此要相应的加上1。

javascript Date format(js日期格式化)

data 为起始的日期:2021-05-01

days:为要添加的天数,比如:1天

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
</head>
<body>


<script type="text/javascript">
var endDate = (new Date("2018/072/09 14:13:11")).getTime(); //得到毫秒数
 
var newDate = new Date(endDate ); //得到普通的时间了

console.log(newDate)

var x = '2022-7-4';   //获取申请日期
var y = '2022-7-1';  //获取请假开始日期


var cf_begin = x;
    cf_begin = new Date(cf_begin.replace("-", "/"));  //申请日期转换成标准日期值
    var cf_end = y;
    cf_end = new Date(cf_end.replace("-", "/"));  //请假开始日期转换成标准日期值

     console.log(cf_begin.getMonth())
     console.log(cf_end.getMonth())


     var n = 0;
     function addDate(date,days){ 
       var d=new Date(date); 
       d.setDate(d.getDate()+days); 
       var m=d.getMonth()+1; 
       return d.getFullYear()+'-'+m+'-'+d.getDate(); 
     } 

      n=addDate(y,3)

      console.log(x,n)
      if(x>n){
          alert("只能补3天内的假期!");
      }else{
          return false;
      }



</script>

</body>
</html>

 

posted @ 2022-07-04 09:41  Shimily  阅读(1621)  评论(0)    收藏  举报