前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >moment.js日期时间管理的常用方法详细教程

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

作者头像
Javanx
发布2019-09-04 12:54:54
8.1K1
发布2019-09-04 12:54:54
举报
文章被收录于专栏:web秀web秀

前言

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

moment.js日期时间管理的详细教程
moment.js日期时间管理的详细教程

moment.js api

初识

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

代码语言:javascript
复制
import moment from 'moment'

如何获取当前时间

代码语言:javascript
复制
let now = moment();
console.log(now) // 当前时间对象
moment.js日期时间管理的详细教程
moment.js日期时间管理的详细教程

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

格式化

代码语言:javascript
复制
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'定义了返回日期的格式。详情请看下图:

moment.js日期时间管理的详细教程
moment.js日期时间管理的详细教程

示例 - 获取周几

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

算法

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

当前日期后20天

代码语言:javascript
复制
let now = moment('2018-12-14').add(20, 'day').format('YYYY-MM-DD');
console.log(now);
// 输出 2019-01-03

diff计算两个日期差

代码语言:javascript
复制
let diff = moment('2019-01-03').diff(moment('2018-12-14'));
console.log(diff);
// 1728000000 单位是毫秒

diff时间差格式化

代码语言:javascript
复制
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分钟

两个日期比较

代码语言:javascript
复制
// 是否之前
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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 初识
  • 格式化
    • 示例 - 获取周几
    • 算法
      • 当前日期后20天
        • diff计算两个日期差
          • diff时间差格式化
            • 两个日期比较
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档