js时间戳解决日期问题
Introduce
产品给了个需求,做一个活动落地页。活动时间是从7.25-7.31。看到的第一眼,嘿,小事 ,简单,每次在页面都显示昨天的获奖信息, 点击更多按钮,显示前一天。直到25号为止
var date = new Date();
console.log(date.getFullYear());
console.log(date.getMonth())
console.log(date.getDate())
idea
每次取得当前日期,判断是不是25,不是的话就显示前一天,设置一个变量。点击更多就减一,然后用date.getdate()的结果减去变量。,用这个向接口申请。
Question
好的,上面解决了所有的需求,我高高兴兴,开开心心跑到楼上健身房开始跑步。 直到上线的前一天。产品突然找到我,活动改了。 日期改成7.26到8.3.突然傻眼。 这个就要每次判断日期, 看是不是八月。不光修改日期还要修改月份。 就很麻烦。【一定能做】 我emmm,就突然想到了时间戳。 以前看过。从来没用过。。。。。
顺便说一下时间戳的属性把
Details
获取时间戳
- var timestamp = Date.parse(new Date()); 【精确到秒】
- var timestamp = (new Date()).valueOf(); 【精确到毫秒】
- var timestamp = new Date().getTime(); 【精确到毫秒】
时间戳转化为日期格式
//第一种 function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); } alert(getLocalTime(1293072805)); //结果是2018年07月26日 10:53 //第二种 function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17) } alert(getLocalTime(1293072805)); //第三种 格式为:2018-07-26 10:00:00 function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " "); } alert(getLocalTime(1177824835));
每天的时间间隔是86400000
solution
所以如果我需要计算的话需要做的就是创建一个全局变量,初始值为0,每次点击更更多就+1;
daystep = 0; var currentday = new Date(Date.parse(new Date()) - parseInt(parseInt(daystep) * 86400000)).getDate(); daystep--
大概就是这个意思。。。 反正就是解决这个问题了,时间戳可以完美的解决每次月份年份之间的转换,减少了判断条件。起码我觉得。。
Review
写的稀里糊涂的,真的是困。 大学里以为自己很厉害。上班了什么都不会。。难受。 什么问题都要踩一遍坑才知道,就很心疼。后悔自己以前没好好学习
writer&contact
{
"name":"Jontyy" ,
"email": " jontyy@163.com"
}1234