moment常用示例
moment(new Date()).format('YYYY-MM-DD HH:mm:ss'); // 2021-01-20 10:58:45
moment(new Date()).format('MM月DD日'); // 01月20日
moment(new Date()).format('MMM'); // 1月
moment(new Date()).format('MMMM'); // 一月
moment(new Date()).format('dd'); // 三
moment(new Date()).format('ddd'); // 周三
moment(new Date()).format('dddd'); // 星期三
moment(new Date()).isoWeekday(); // 3
moment(new Date()).isoWeekYear(); // 2021
moment(new Date()).format('LT'); // 10:58
moment(new Date()).format('LTS'); // 10:58:45
moment(new Date()).format('L'); // 2021/01/20
moment(new Date()).format('LL'); // 2021年1月20日
moment(new Date()).format('LLL'); // 2021年1月20日上午10点58分
moment(new Date()).format('LLLL'); // 2021年1月20日星期三上午10点58分
moment(new Date()).format('l'); // 2021/1/20
moment(new Date()).format('ll'); // 2021年1月20日
moment(new Date()).format('lll'); // 2021年1月20日 10:58
moment(new Date()).format('llll'); // 2021年1月20日星期三 10:58
moment(new Date()).format('A'); // 上午
moment(new Date()).format('a'); // 上午
moment(new Date()).format('ALT') // 上午10:58
subtract 减法 、 add 加法
moment().add(7, 'days').format('LL'); // 当前日期的7天后的日期
moment().subtract(7, 'days').format('LL'); // 当前日期的7天前的日期
moment().add(9, 'hours').format('HH:mm:ss'); // 当前时间的9小时后
moment().subtract(9, 'hours').format('HH:mm:ss'); // 当前时间的9小时前
moment().add(1, 'week').format('LL'); // 当前日期的1周后
fromNow 时差 (之前) ; fromNow(true) 加true表示去除前字或者内字,不加则保留
moment([2017, 0, 29]).fromNow(true); // 4年
moment([2017, 0, 29]).fromNow(); // 4年前
moment([2020, 8, 29]).fromNow(true); // 5个月
moment([2020, 8, 29]).fromNow(); // 5个月内
moment("20170929", "YYYYMMDD").fromNow(); // 6年前
moment(+new Date() - 1000 * 300).fromNow(); // 5分钟前
moment(+new Date() - 1000 * 3).fromNow(); // 几秒前
moment(+new Date() - 3 * 24 * 60 * 60 * 1000).fromNow(); // 3天前
moment(+new Date() - 30 * 24 * 60 * 60 * 1000).fromNow(); // 1个月前
moment(+new Date() - 365 * 24 * 60 * 60 * 1000).fromNow(); // 1年前
toNow 时差 (之后 现在为基准) ; toNow(true) 去除前或者内字
moment([2017, 0, 29]).toNow(); // 4年内
moment([2020, 0, 29]).toNow(); // 1年内
moment([2020, 0, 29]).toNow(true); // 1年
时差 (之后; to(true) // 去除前或者内字 (注意 这个可能会出错),个人认为没有fromNow(true)好用
new moment([2017, 0, 29]).to(); // 4年内
new moment([2020, 0, 29]).to(); // 1年前
new moment([2020, 0, 29]).to(); // 1年
时差 (毫秒)
moment([2007, 0, 29]).diff(moment([2007, 0, 28])); // 相差一天的毫秒数86400000
时差 (分钟)
moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'minute'); //一天相差1440分钟
时差 (天)
moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'days'); // 1天
天数 (月)
moment("2025-02", "YYYY-MM").daysInMonth(); // 29 计算当月有多少天
时间差
let m1 = moment('2018-03-30 18:13:12') //指定一个时间
let m2 = moment()
var du = moment.duration(m2 - m1, 'ms'),
years = du.get('year'),
months = du.get('months'),
days = du.get('days'),
hours = du.get('hours'),
mins = du.get('minutes'),
ss = du.get('seconds');
console.log(years + "年" + months + "月" + days + "日" + hours + '时' + mins + '分' + ss + '秒');
在vue中汉化moment
创建文件zhcn_moment.js,拷贝以下内容
moment汉化 ,只需要在main.js中引用该文件即可
import moment from 'moment'
// 里面的字符可以根据自己的需要进行调整
moment.locale('zh-cn', {
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'YYYY-MM-DD',
LL: 'YYYY年MM月DD日',
LLL: 'YYYY年MM月DD日Ah点mm分',
LLLL: 'YYYY年MM月DD日ddddAh点mm分',
l: 'YYYY-M-D',
ll: 'YYYY年M月D日',
lll: 'YYYY年M月D日 HH:mm',
llll: 'YYYY年M月D日dddd HH:mm'
},
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
meridiemHour: function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === '凌晨' || meridiem === '早上' ||
meridiem === '上午') {
return hour;
} else if (meridiem === '下午' || meridiem === '晚上') {
return hour + 12;
} else {
// '中午'
return hour >= 11 ? hour : hour + 12;
}
},
meridiem: function (hour, minute, isLower) {
const hm = hour * 100 + minute;
if (hm < 600) {
return '凌晨';
} else if (hm < 900) {
return '早上';
} else if (hm < 1130) {
return '上午';
} else if (hm < 1230) {
return '中午';
} else if (hm < 1800) {
return '下午';
} else {
return '晚上';
}
},
calendar: {
sameDay: '[今天]LT',
nextDay: '[明天]LT',
nextWeek: '[下]ddddLT',
lastDay: '[昨天]LT',
lastWeek: '[上]ddddLT',
sameElse: 'L'
},
dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
ordinal: function (number, period) {
switch (period) {
case 'd':
case 'D':
case 'DDD':
return number + '日';
case 'M':
return number + '月';
case 'w':
case 'W':
return number + '周';
default:
return number;
}
},
relativeTime: {
future: '%s内',
past: '%s前',
s: '几秒',
ss: '%d秒',
m: '1分钟',
mm: '%d分钟',
h: '1小时',
hh: '%d小时',
d: '1天',
dd: '%d天',
M: '1个月',
MM: '%d个月',
y: '1年',
yy: '%d年'
},
week: {
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
dow: 1, // Monday is the first day of the week.
doy: 4 // The week that contains Jan 4th is the first week of the year.
}
})
在main.js文件中引用即可完成汉化
import'@/utils/zhcn_moment.js'