1、将日期格式化输出 “2015|01|24”(日期对象-》字符串)
思路:通过new Date()获取当前日期 getFullYear()获取年份 getMonth()获取月份 getDate()获取第几天
由于月份和第几天有可能是个位数字,需要在前面补0。故需要在对月份和第几天进行判断,如果小于10就在前面加上0,最后将字符串拼接即可。
function formateDate(date) {
var y = date.getFullYear();
var m = date.getMonth();
var d = date.getDate();
console.log(y, m, d);
if (m < 10) {
m = "0" + m;
}
if (d < 10) {
d = "0" + d;
}
var res = y + "|" + m + "|" + d;
return res;
}
var d = new Date();
var r = formateDate(d);
console.log(r);
2、计算两个日期相差了多少天
注:若是两个日期对象可以直接相减,可以自动转换为时间戳去减。
但是:若日期对象相加 会自动转为字符串 去拼接
function getDay(d1, d2) {
var r = d2 - d1; //日期对象相减 会自动转为时间戳去相减
var result = r / 1000 / 60 / 60 / 24;
return Math.ceil(result);
}
var d1 = new Date(2022, 1, 10, 2, 14);
var d2 = new Date(2022, 3, 25, 12, 17);
var r2 = getDay(d1, d2);
console.log(r2);
3、获得N天以后的日期
setDate()用于设置一个月的某一天
setDate(100)设置之日期的时候,超过30天,日期对象会自动把时期往后折算
function getDate(n) {
var now = new Date();//得到当前日期
var date = now.getDate() + n;
now.setDate(date);
return now;
}
var r3 = getDate(5);
console.log(r3);