计算两个日期相差的天数
//sDate1和sDate2是yyyy-MM-dd格式 function dateDiff(sDate1, sDate2) { var aDate, oDate1, oDate2, iDays,iMonth; aDate = sDate1.split("-"); oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为yyyy-MM-dd格式 aDate = sDate2.split("-"); oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数 iMonth = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24 /30); //把相差的毫秒数转换为月 return {d:iDays,m:iMonth}; //返回相差天数 } dateDiff('2017-02-02','2017-02-15');
//两个日期之间所有的日期
var getDates = function(startDate, endDate) { var dates = [], currentDate = startDate, addDays = function(days) { var date = new Date(this.valueOf()); date.setDate(date.getDate() + days); return date; }; while (currentDate <= endDate) { dates.push(currentDate); currentDate = addDays.call(currentDate, 1); } return dates; }; var dates = getDates(new Date(2017,12,22), new Date(2018,01,10)); dates.forEach(function(date) { console.log(date); });
日期减一年
var a =new Date('2017-10-12'); a.setFullYear(a.getFullYear() +1);
referr: https://stackoverflow.com/questions/33070428/add-year-to-todays-date
当然在php里面减一年就简单了
$date = '2004-02-29'; echo date('Y-m-d',strtotime('-1 year',strtotime($date)));