js动态计算n年,或n月,或n天之后的日期
js动态计算n年或者n月或者n天之后的日期
由于需要动态计算日期并兼容ios手机日期格式返回使用 ‘YYYY/MM/DD’ 的格式,这属于借鉴并自己整理总结的三种方法,可能并不是很完善,希望有更好的方法的小伙伴一起分享一起完善
n年之后的日期
getAfterNYear(year){
//year代表几年this.startDate 代表开始日期
let time = new Date(this.startDate);
let y = time.getFullYear()+year;
let m = time.getMonth() + 1
let d = time.getDate();
//考虑二月份场景,若N年后的二月份日期大于该年的二月份的最后一天,则取该年二月份最后一天
if(m == '02' || m == 2){
var monthEndDate = new Date(y ,m,0).getDate();
if(parseInt(d) > monthEndDate){//为月底时间
//取两年后的二月份最后一天
d = monthEndDate;
}
}
let date=y + "/" + m + "/" + d
return moment(date).format('YYYY/MM/DD HH:mm:ss');
},
n月之后的日期
Month(n) { // n个月后
let time=this.startDate || this.productObj.endDate
let startTime = time.replace(/-/g,'/');
let s=startTime.split("/")
var yy = parseInt(s[0]);
var mm = parseInt(s[1] - 1);
var dd = parseInt(s[2]);
var dt = new Date(yy, mm, dd);
dt.setMonth(dt.getMonth() + n);
if ((dt.getFullYear() * 12 + dt.getMonth()) > (yy * 12 + mm + n)) {
dt = new Date(dt.getFullYear(), dt.getMonth(), 0);
}
var year = dt.getFullYear();
var month = dt.getMonth() + 1;
var days = dt.getDate();
var dd = year + "-" + month + "-" + days;
return moment(dd).format('YYYY/MM/DD HH:mm:ss');
},
n天之后的日期
GetDay(day) {
//day代表几年this.startDate 代表开始日期
let time=new Date(this.startDate)
time.setDate(time.getDate() + day);
//获取Day天后的日期
var y = time.getFullYear();
var m = time.getMonth() + 1;
//获取当前月份的日期
var d = time.getDate();
let date=y + "/" + m + "/" + d
return moment(date).format('YYYY/MM/DD HH:mm:ss');
},
推荐阅读
- 慢慢的美丽
- 爱就是希望你好好活着
- 昨夜小楼听风
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 三十年后的广场舞大爷
- 奔向你的城市
- 七年之痒之后
- 2019年12月24日
- 游戏IP(立足于玩家情感的粉丝经济)
- 年味真的是越来越淡了么