初衷
最近做了一个功能涉及到了时间戳的转换。需要对当前时间和服务器传过来的时间作比较,看差值落在哪个区间,就在页面上显示不同的文案。比如说,差值为小于1天,显示推送的是近一天的数据;差值大于1小于7,显示推送的是近一周的数据。
获取当前时刻的时间戳
let time = new Date.getTime()

获取日期中的天数(1到31)
let time = new Date();
let day = time.getDate();
设置日期月份中的天数
let time = new Date();
// 如果参数为负数,表示当前日期的n天之前的日期
// 假设今天是2019年5月11日,则以下代码表示2019年4月30的时间戳
let date = time.setDate(-11)
获取近一周的时间戳
你是不是会想到用当前的时间戳,减去7天的毫秒数。我们来写一下
方法1:
let nowTime = new Date().getTime();
let lastWeekTime = nowTime - 7 * 24 * 60 * 60 * 1000
这种方法很直观,但是需要很多计算。我个人不是很喜欢,还有一个更推荐的写法,就是用Date的api:getDate()、setDate()
方法2(推荐):
let nowTime = new Date();
let lastWeekTime = nowTime.setDate(nowTime.getDate() - 7);
这里利用了getDate()这个api直接获取了当前时间的天数,然后用setDate()把时间把时间设置成7天前的时间。
ps: 当前时间最好从服务器拿,不然万一用户的系统时间是不准确的,那就出问题了