Moment.js 是一个广泛使用的 JavaScript 日期处理库,它提供了丰富的 API 来解析、验证、操作和显示日期和时间。以下是一些 Moment.js 常用到的语法示例:
1. 初始化 Moment 对象
// 使用当前时间
let now = moment();
// 使用特定的日期时间字符串
let specificDate = moment("2023-04-01T12:00:00");
// 使用 Date 对象
let dateObj = new Date();
let fromDateObj = moment(dateObj);
// 解析非标准格式的日期字符串
let customFormat = moment("01-04-2023", "DD-MM-YYYY");
2. 格式化日期
let formattedDate = moment().format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate); // 输出类似 "2023-04-01 12:00:00"
// 自定义输出格式
let customFormatted = moment().format('dddd, MMMM Do YYYY, h:mm:ss a');
console.log(customFormatted); // 输出类似 "Saturday, April 1st 2023, 12:00:00 pm"
3. 日期操作
// 添加时间
let futureDate = moment().add(7, 'days');
console.log(futureDate.format('YYYY-MM-DD')); // 输出未来7天的日期
// 减去时间
let pastDate = moment().subtract(1, 'months');
console.log(pastDate.format('YYYY-MM-DD')); // 输出上个月的今天
// 开始和结束时间
let startOfMonth = moment().startOf('month');
let endOfMonth = moment().endOf('month');
console.log(startOfMonth.format('YYYY-MM-DD'));
console.log(endOfMonth.format('YYYY-MM-DD'));
4. 日期比较
let date1 = moment("2023-04-01");
let date2 = moment("2023-05-01");
// 是否相等
if (date1.isSame(date2)) {
console.log('Dates are the same');
} else {
console.log('Dates are not the same');
}
// 是否在某个时间之前
if (date1.isBefore(date2)) {
console.log('Date1 is before Date2');
}
// 是否在某个时间之后
if (date2.isAfter(date1)) {
console.log('Date2 is after Date1');
}
5. 日期差异
let start = moment("2023-01-01");
let end = moment("2023-04-01");
// 获取两个日期之间的差异(以天为单位)
let diffDays = end.diff(start, 'days');
console.log(diffDays); // 输出 90 或类似值
// 也可以获取月份、年份等差异
let diffMonths = end.diff(start, 'months');
let diffYears = end.diff(start, 'years');
console.log(diffMonths);
console.log(diffYears);
6. 日期查询
let today = moment();
// 是否是周末
if (today.isWeekend()) {
console.log('Today is a weekend');
}
// 今天是星期几(数字形式,0代表星期天,6代表星期六)
let dayOfWeek = today.day();
console.log(dayOfWeek);
// 今天是几月几号
let month = today.month() + 1; // 注意月份是从0开始的
let date = today.date();
console.log(month + '/' + date);