四时宝库

程序员的知识宝库

moment.js日期时间管理的常用方法详细教程

点击右上方红色按钮关注“web秀”,让你真正秀起来

前言

js原生获取时间,并对其格式化、计算,并不是那么的简单,moment.js的出现,对日期时间处理就方便了许多许多。

初识

怎么用? 普通页面,直接引入moment.js文件就可以了。 node项目:

import moment from 'moment'

如何获取当前时间

let now = moment(); 
console.log(now) // 当前时间对象

可以看看moment()是个什么鬼?里面包含了哪些方法?

格式化

let now = moment().format('YYYY-MM-DD HH:mm:ss'); 
console.log(now); 
// 2018-12-14 16:00:08

format就是格式化函数,参数'YYYY-MM-DD HH:mm:ss'定义了返回日期的格式。详情请看下图:

示例 - 获取周几

// 先获取星期中的第几天0-6,0是周日 
let now = moment().format('d'); 
let weekStr = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']; 
let week = weekStr[now]; 
console.log(weekStr); 
// 输出周x

算法

可以轻松计算某个日期后多少天,两个日期差,两个日期比较等。

当前日期后20天

let now = moment('2018-12-14').add(20, 'day').format('YYYY-MM-DD'); 
console.log(now); 
// 输出 2019-01-03

diff计算两个日期差

let diff = moment('2019-01-03').diff(moment('2018-12-14')); 
console.log(diff); 
// 1728000000 单位是毫秒

diff时间差格式化

let starttime = '2018-12-14 18:00'; 
let endtime = '2018-12-15 10:22'; 
var totalMinute = moment(endtime).diff(starttime) / (1000 * 60), 
 hours = Math.floor(totalMinute / 60), 
 minute = totalMinute % 60, 
 result = ''; 
 
if(hours > 0){ 
 result = result + hours + '小时'; 
} 
 
if(minute > 0){ 
 result = result + minute + '分钟'; 
} 
console.log(result); 
// 16小时22分钟

两个日期比较

// 是否之前 
moment('2018-10-20').isBefore('2018-12-31', 'year'); // false 
moment('2018-10-20').isBefore('2019-01-01', 'year'); // true 
moment('2018-10-20').isBefore('2019-01-01'); // true 
 
// 是否之后 
moment('2010-10-20').isAfter('2010-01-01', 'year'); // false 
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true 
 
// 是否相同 
moment('2010-10-20').isSame('2009-12-31', 'year'); // false 
moment('2010-10-20').isSame('2010-01-01', 'year'); // true 
moment('2018-01-01').isSame('2018-01-01'); // true 
 
// 是否是闰年 
moment([2000]).isLeapYear() // true 
moment([2001]).isLeapYear() // false

公告

喜欢小编的点击关注,了解更多知识!

源码地址请点击下方“了解更多”

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接