无论什么项目,时间格式化都是非常常规的需求。而 moment.js 这个库真的非常好用,能够满足绝大部分对于时间处理的行为。
各种时间格式化
moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601,无小数秒钟)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"
moment().format("ddd, hA"); // "Sun, 3PM"
moment('gibberish').format('YYYY MM DD'); // "Invalid date"
moment('10:00:00', 'HH:mm')
计算某天到几天的天数
const dayDiff = moment(date)
.startOf('day')const dayDiff = moment(date)
.startOf('day')
指定某天的输出方式
moment().calendar(null, {
sameDay: '[今天]',
nextDay: '[明天]',
nextWeek: 'dddd',
lastDay: '[昨天]',
lastWeek: '[上个] dddd',
sameElse: 'DD/MM/YYYY'
});
isBefore & isSame & isAfter
moment('2010-10-20').isBefore('2010-10-21'); // true
moment('2010-10-20').isBefore('2010-12-31', 'year'); // false
moment('2010-10-20').isBefore('2011-01-01', 'year'); // true
moment('2010-10-20').isSame('2010-01-01', 'year'); // true
moment('2010-10-20').isAfter('2010-10-19'); // true
clone moment
moment.duration().clone();
获取加减时间后的结果
moment().add(7, 'days');
moment().add(7, 'days').add(1, 'months'); // 链式
moment().subtract(7, 'days');
说去某个时间点的开始和结束时间
moment().startOf('year'); // 设置为今年一月1日上午 12:00
moment().startOf('month'); // 设置为本月1日上午 12:00
moment().startOf('quarter'); // 设置为当前季度的开始,即每月的第一天上午 12:00
moment().startOf('week'); // 设置为本周的第一天上午 12:00
moment().startOf('isoWeek'); // 根据 ISO 8601 设置为本周的第一天上午 12:00
moment().startOf('day'); // 设置为今天上午 12:00
moment().startOf('date'); // 设置为今天上午 12:00
moment().startOf('hour'); // 设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒
moment().startOf('minute'); // 设置为当前时间,但是 0 秒钟、0 毫秒
moment().startOf('second'); // 与 moment().milliseconds(0); 相同
moment().endOf("year");
最后
推荐仔细看看 moment.js 的文档 http://momentjs.cn/
,有很多关于时间处理的小功能。很可能在之后的开发工作中就用上了。
网友评论