版权声明:如有文章想转载请联系qq:1289281445 tel:13253311994 https://blog.csdn.net/qq_39458856/article/details/82377772
1. Date:
1. 单位:
FullYear Month Date Day
Hours Minutes Seconds Milliseconds
2. 每个单位上都有一对儿get/set方法
其中: getXXX() 专门获取单位的数值
setxxx() 专门设置单位的数值
比如: date.getDate() date.getFullYear()
date.setDate(20) date.setFullYear(2018)
特例: Day没有set, 不能修改
3. 取值范围:
Month: 0~11 计算机中的month比现实中小1
在取值和修改时,要修正
Date: 1~31
Day: 0~6
Hours: 0~23
Minutes/Seconds: 0~59
计算: 2种:
1. 两个日期对象可相减: 结果为毫秒差
2. 对任意单位做加减:
3步:
1. 获得单位上的当前值: 2018/2/13 getDate() 13
2. 做加减: 13-30 = -17
3. 将计算结果set回去
.setDate(-17);
setDate内置日期进制算法。
简化: date.setxxx(.getxxx()+n)
格式化:
.toLocaleString() 转为当地时区的简化版格式
.toLocaleDateString() 转为当地时区的简化版格式,仅保留日期
ex:通过入职时间,计算合同到期时间和续签时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var n=new Date(2017,12,3)
//因为时间对象为一个引用类型不是按值传递所以赋值的对象修改时也会影响原对象
//所以要将其保留
var tn=new Date(n)
tn.setFullYear(tn.getFullYear()+3)
var n2=new Date(tn)
var n2d=n2.getDay();
console.log(`签约时间${n}到期时间${tn}`)
if(n2d==0){
n2.setDate(n2.getDate()-2)
}else if (n2d==6){
n2.setDate(n2.getDate()-1)
}
console.log(`续签时间${n2.toLocaleString()}`)
</script>
</body>
</html>