在C语言等语言,正常获取当前时间的前几天时间,我们往往要考虑”今年是否是润年? 月份是否是2月?”等很多情况的逻辑判断。而在javascript中这些逻辑都可以省去,下面来介绍实现方法。
一、首先介绍几个函数
getTime():返回 1970 年 1 月 1 日至今的毫秒数。
setTime():以毫秒设置 Date 对象。
getDate():从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getMonth():从 Date 对象返回月份 (0 ~ 11)。
getFullYear():从 Date 对象以四位数字返回年份。
二、实现
思路:首先通过getTime()来获取(1970 年 1 月 1 日至今的)毫秒数;然后我们在用获取的毫秒数减去一天(或几天)的毫秒数,再将这个结果交于setTime()处理,再用getDate()、getMonth()、getFullYear()等方法获取日、月、年即可。(这里我们获取的当前时间的前两天时间)
代码:
var now = new Date();
var TwoDaysAgo = new Date();
//获取当前时间的毫秒数
var nowMilliSeconds = now.getTime();
//用获取毫秒数 减去两天的毫秒数 赋值给TwoDaysAgo对象(一天有86400000毫秒)
TwoDaysAgo.setTime(nowMilliSeconds-(2*86400000));
//通过赋值后的TwoDaysAgo对象来得到 两天前的 年月日。这里我们将日期格式化为20180301的样子。
//格式化日,如果小于9,前面补0
var day = ("0" + TwoDaysAgo.getDate()).slice(-2);
//格式化月,如果小于9,前面补0
var month = ("0" + (TwoDaysAgo.getMonth() + 1)).slice(-2);
//拼装完整日期格式
var getToday = TwoDaysAgo.getFullYear()+(month)+(day);
alert(getToday); //20180227