DEV Community

Dennis Zhang
Dennis Zhang

Posted on

moment的使用

const moment = require('moment'); // 如果你使用的是 Node.js,需要引入 moment

// startOf('day'): 将时间设置为当天的开始,即当天的零点时间。
const startOfToday = moment().startOf('day');  

console.log(startOfToday.format()); // 输出类似于 "2024-08-31T00:00:00+08:00" 的时间格式

//startOf('month'): 将时间设置为当前月份的第一天零点(午夜)时间。
const startOfMonth = moment().startOf('month');

// 晚于今天,第二个参数 'year', 'month', 'day'
someDate.isAfter(today, 'day')
date2.isAfter(date1, 'month') 只会比较年份和月份部分

if (someDate.isSameOrAfter(today)) {
  console.log('这个日期在今天之后或等于今天。');
}

// 格式化
const dateStr = '2024-08-31 14:30:00'; // 日期字符串
const format = 'YYYY-MM-DD HH:mm:ss'; // 日期格式

const dateObj = moment(dateStr, format); // 解析日期字符串为 Moment 对象
console.log(dateObj.format()); // 输出类似于 "2024-08-31T14:30:00+08:00" 的时间格式


console.log(now.format('YYYY-MM-DD'));        // 输出: 2024-08-31 (年-月-日)
console.log(now.format('YYYY-MM-DD HH:mm:ss')); // 输出: 2024-08-31 15:45:30 (年-月-日 时:分:秒)
console.log(now.format('MMMM Do YYYY, h:mm:ss a')); // 输出: August 31st 2024, 3:45:30 pm
console.log(now.format('ddd, hA'));          // 输出: Sat, 3PM (星期缩写, 12小时制时间)
Enter fullscreen mode Exit fullscreen mode

自定义格式化

_你可以根据需要自定义格式,使用不同的格式化标记来表示不同的时间部分:
_
YYYY: 四位数年份(例如,2024)
YY: 两位数年份(例如,24)
MMMM: 完整月份名称(例如,August)
MMM: 月份的缩写(例如,Aug)
MM: 两位数的月份(例如,08)
M: 月份,去掉前导零(例如,8)
DD: 两位数的日期(例如,09)
D: 日期,去掉前导零(例如,9)
dddd: 星期的全称(例如,Saturday)
ddd: 星期的缩写(例如,Sat)
HH: 24小时制的小时(例如,15)
hh: 12小时制的小时(例如,03)
mm: 分钟,两位数(例如,09)
ss: 秒,两位数(例如,05)
a: 小写的上午/下午(例如,am 或 pm)
A: 大写的上午/下午(例如,AM 或 PM)

Top comments (0)