Open lulujianglab opened 6 years ago
最近做的前端项目遇到了处理日期时间的问题,要对数据库中的时间进行处理,由于原生的日期格式处理起来很繁琐,所以选用momentjs来对日期进行一些常规的处理
momentjs
跟原生js为了完成一个简单的日期时间显示效果而要写一大堆处理函数相比,momentjs算是极其轻量级的操作时间的工具库,支持字符串、Date、时间戳以及数组等格式,它使得操作时间变得非常简单
momentjs支持多个环境,可以在浏览器中引入momentjs文件即可
<script src="https://cdn.bootcss.com/moment.js/2.9.0/moment.js"></script>
也可以脱离浏览器的环境在nodejs中使用,但需要安装moment模块
npm install moment
然后加载模块即可
var moment = require('moment')
获得当前时间
moment() // 当前时间
相当于moment(new Date()) 此处会返回一个moment封装的日期对象
初始化一个指定的时间
moment('2018-01-21') // 2018-01-21 moment(Date.now() - 24 * 60 * 60 * 1000) // 昨天 moment(new Date(2018, 01, 22)) // 2018-01-22 moment({year:2015,month:10,day:26,hour:22}) // 传入一个具有日期字段的对象
moment().format('YYYY年MM月DD日 HH:mm:ss') // 2018年01月22日 18:01:41 moment().format('YYYY-MM-DD HH:mm:ss') // 2018-01-22 18:02:35 moment().format('YYYY/MM/DD HH:mm:ss') // 2018/01/22 18:03:29 moment().format('hh:m:ss') // 06:2:32 moment().format('YYYY') // "2018" moment().format('d') // 今天是星期几 moment().format('X') // 转换当前时间的Unix时间戳
moment().toDate() // Mon Jan 22 2018 18:11:55 GMT+0800 (中国标准时间) moment('2018-01-20').toDate() // Tue Jan 20 2015 00:00:00 GMT+0800 (中国标准时间) moment('2018-01-22 10:20:15').toDate() // Mon Jan 22 2018 10:20:15 GMT+0800 (中国标准时间) moment(1448896064621).toDate() //毫秒转日期
moment().second() // 秒 moment().second(Number) // 设置 秒 0 到 59
类似还可以设置分获得分设置小时获得小时
moment().date() // 日 moment().day() // 星期几 moment().dayOfYear() // 一年里的第几天 moment().week() // 一年里的第几周 moment().month() // 月-1 moment().quarter() // 一年里的第几个季度 moment().year() // 年 moment().daysInMonth() // 当前月有多少天
moment('20160901', 'YYYYMMDD').fromNow() // 1 years ago
时间加减
moment().add(7, 'days') // 当前时间加上7天 第2个参数还可以是 'months', 'years' 等 moment().add(7, 'd') // 与上面一行代码的运行结果一样 moment().subtract(1, 'months') // 当前的月份减去1个月 moment().startOf('week') // 本周第一天 moment().startOf('hour') // 等效于moment().minutes(0).seconds(0).milliseconds(0)
开始结束时间
moment().endOf('year') // 将时间设置为今年的最后时刻 moment().startOf('month') // 将时间设置为这个月的开始 moment().endOf('week') // 将时间设置为本周的最后时刻
比较传入日期的最大值最小值
a = moment().add(7, 'days') b = moment().subtract(1, 'days') moment.max(a, b) moment.min(a, b)
时间差(默认返回相差的毫秒数)
a = moment().add(7, 'days') b = moment().subtract(1, 'days') a.diff(b) // 86400000 a.diff(b, 'days') // 1 返回相差的天数
早于
moment('2018-01-22').isBefore('2018-01-21') // true moment('2018-01-22').isBefore('2018-02-23', 'year') // false moment('2018-01-22').isBefore('2019-01-01', 'year') // true
是否相等
moment('2018-01-22').isSame('2018-01-22') // true moment('2018-01-22').isSame('2017-12-31', 'year') // false moment('2018-01-22').isSame('2018-01-01', 'year') // true
晚于
moment('2018-01-22').isAfter('2010-10-21') // true moment('2018-01-22').isAfter('2018-01-01', 'year') // false moment('2018-01-22').isAfter('2017-12-31', 'year') // true
是否在时间范围内
moment('2018-01-22').isBetween('2018-01-01', '2018-10-25') // true moment('2018-01-22').isBetween('2017-01-01', '2018-01-28', 'year') // false moment('2018-01-22').isBetween('2017-12-31', '2019-01-01', 'year') // true moment().isLeapYear() // 是否是闰年
官网地址
前言
最近做的前端项目遇到了处理日期时间的问题,要对数据库中的时间进行处理,由于原生的日期格式处理起来很繁琐,所以选用
momentjs
来对日期进行一些常规的处理跟原生js为了完成一个简单的日期时间显示效果而要写一大堆处理函数相比,
momentjs
算是极其轻量级的操作时间的工具库,支持字符串、Date、时间戳以及数组等格式,它使得操作时间变得非常简单使用心得
momentjs支持多个环境,可以在浏览器中引入momentjs文件即可
也可以脱离浏览器的环境在nodejs中使用,但需要安装moment模块
然后加载模块即可
实例
创建
获得当前时间
相当于moment(new Date()) 此处会返回一个moment封装的日期对象
初始化一个指定的时间
格式化
转换为Date对象
获取/设置时间信息
类似还可以设置分获得分设置小时获得小时
操作
时间加减
开始结束时间
比较传入日期的最大值最小值
时间差(默认返回相差的毫秒数)
查询
早于
是否相等
晚于
是否在时间范围内
官网地址