moment 官方声明已经不再更新了,而且moment包体积太大,有 280.9 kB,对于 Tree shaking 也无效,个人建议使用dayjs,比较轻量,包体积仅有 2 kB ,API也几乎跟moment一样
1、获取日期的23时59分59秒
//今天的
moment().endOf('day')
//指定日期的
moment('2020-06-25').endOf('day')
2、获取日期的0时0分0秒
//今天的,跟上面的endOf一样的
moment().startOf('day')
3、获取时间戳
moment().endOf('day').valueOf()
4、时间戳转日期
moment(val).format("YYYY-MM-DD HH:mm:ss")
5、获取当前时间前 X 天
moment().subtract(1, "days").format("YYYY-MM-DD HH:mm:ss"); //1就是前1天,2就是前两天
6、获取当前时间前 X 周
moment().subtract(1, "weeks").format("YYYY-MM-DD");//月把weeks改成months
可以取的值
years
quarters
months
weeks
days
hours
minutes
seconds
milliseconds
7、获取之后的时间 (add)
moment().add(1, "years").format("YYYY-MM-DD HH:mm:ss");//一年后
moment().add(1, "hours").format("YYYY-MM-DD HH:mm:ss");//一个小时后
8、获取本周三时间
moment().weekday(3).format('YYYY-MM-DD');
9、获取上周五时间
moment().weekday(-2).format('YYYY-MM-DD');//简单理解为上周倒数第几天,和当天日期无关
10、获取一个月多少天
moment().daysInMonth()
11、比较两个时间大小
data1=moment("2020-11-12 13:20:59")
data2=moment("2020-11-10 13:20:59")
data1.diff(data2, "minute")
12、根据 moment.js 获取开始结束时间段
moment().startOf(String) // 开始时间
moment().endOf(String) // 结束时间
13、根据 moment.js 计算时间
moment().add(Number, String); // 加法
moment().subtract(Number, String); // 减法
String - 通过将其设置为一个时间单位的开始来改变原始时刻:
传入 key 与 Shorthand 获取到的效果是相同的。
// 获取当天的开始结束时间
function getCurrentDays() {
const startDate = moment().startOf("days").format("YYYY-MM-DD");
const endDate = moment().endOf("days").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取当周的开始结束时间,周日至周一
function getCurrentWeekdays() {
const startDate = moment().startOf("weeks").format("YYYY-MM-DD");
const endDate = moment().endOf("weeks").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取当月的开始结束时间
function getCurrentMonth() {
const startDate = moment().startOf("month").format("YYYY-MM-DD");
const endDate = moment().endOf("month").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取上周的开始结束时间
function getLastWeekdays() {
const startDate = moment().week(moment().week() - 1).startOf("weeks").format("YYYY-MM-DD");
const endDate = moment().week(moment().week() - 1).endOf("weeks").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取上月的开始结束时间
function getLastMonth() {
const startDate = moment().month(moment().month() - 1).startOf("month").format("YYYY-MM-DD");
const endDate = moment().month(moment().month() - 1).endOf("month").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取下周的开始结束时间
function getNextWeekdays() {
const startDate = moment().week(moment().week() + 1).startOf("weeks").format("YYYY-MM-DD");
const endDate = moment().week(moment().week() + 1).endOf("weeks").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取下月的开始结束时间
function getNextMonth() {
const startDate = moment().month(moment().month() + 1).startOf("month").format("YYYY-MM-DD");
const endDate = moment().month(moment().month() + 1).endOf("month").format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取n天前的开始结束时间
function getBefore3days() {
// 减法 moment.subtract(number, String)
const startDate = moment().subtract(3, 'days').format("YYYY-MM-DD");
const endDate = moment().subtract(3, 'days').format("YYYY-MM-DD");
return [startDate, endDate];
}
// 获取n天后的开始结束时间
function getAfter3days() {
// 减法 moment.add(number, String)
const startDate = moment().add(3, 'days').format("YYYY-MM-DD");
const endDate = moment().add(3, 'days').format("YYYY-MM-DD");
return [startDate, endDate];
}