以下函数可以实现取任意时间前7天的时间,输入参数为一个Date对象或可转为Date对象的时间格式,如果不输入参数,默认为当前时间,返回值是一个以/分割的日期和时间字符串:
function get7DaysBefore(date){ var date = date || new Date(), timestamp, newDate; if(!(date instanceof Date)){ date = new Date(date.replace(/-/g, '/')); } timestamp = date.getTime(); newDate = new Date(timestamp - 7 * 24 * 3600 * 1000); return [[newDate.getFullYear(), newDate.getMonth() + 1, newDate.getDate()].join('/'), [newDate.getHours(), newDate.getMinutes(), newDate.getSeconds()].join(':')].join(' ');}解释:
date || new Date()表示取默认值,如果date有值,则表达式为date的值,否则取new Date的值,即当前时间
date instanceof Date判断date是否为Date对象,如果不是,此处直接判断为日期字符串,此函数支持以-和/分割的日期
date.getTime()取date的时间戳
timestamp - 7 * 24 * 3600 * 1000将时间戳减去7天得到7天前的时间戳。JavaScript中的时间戳是毫秒时间戳7*24*3600*1000代表7天*24小时/天*3600秒/小时*1000毫秒/秒。
最后,使用数组拼接的方法将新对象的值按指定格式拼接起来,此处也可用字符串拼接。