四时宝库

程序员的知识宝库

Javascript日期处理利器moment.js

官网:http://momentjs.cn/

安装

  • Node.js
npm install moment

var moment = require('moment');
moment().format();
  • 浏览器
<!--这里可以使用cdn,也可下载到本地-->
<script src="moment.js"></script>
<script>
 moment().format();
</script>

如何使用?

1、格式化日期

moment().format('YYYY-MM-DD HH:mm:ss');//格式化当前时间

2、星期几

moment().format('d'); //3

3、转换当前时间的Unix时间戳

moment().format('X');

4、相对时间

moment("20180501", "YYYYMMDD").fromNow();//一年前
moment().subtract('days',7).format('YYYY年MM月DD日');//七天前
moment().subtract('hours',9).format('HH:mm:ss'); //九小时前
moment().add('hours',9).format('HH:mm:ss'); //九小时

Moment.js 写法示例

创建

moment() // 当前时间
moment("1995-12-25") // 1995-12-25
moment("12-25-1995", "MM-DD-YYYY") // 1995-12-25
moment({ year :2010, month :3, day :5, hour :15, minute :10, second :3, millisecond :123})
moment(Date.now() - 24 * 60 * 60 * 1000) // 昨天
moment(new Date(2018, 9, 16)) // 2018-9-16

格式化

moment().format('YYYY年MM月DD日 HH:mm:ss') // 2016年11月11日 22:05:19
moment().format('hh:m:ss') // 10:5:19
moment().format('[YYYY]') // "YYYY"。[] 里的会原样输出。

转化成 Date 对象

moment().toDate()

获取/设置时间信息

moment().second() //获得 秒
moment().second(Number) //设置 秒。0 到 59
moment().minute() //获得 分
moment().minute(Number) //设置 分。0 到 59
// 类似的用法
moment().hour() // 小时
moment().date() // 一个月里的第几天
moment().day() // 星期几
moment().dayOfYear() // 一年里的第几天
moment().week() // 一年里的第几周
moment().month() // 第几个月
moment().quarter() // 一年里的第几个季度
moment().year() // 年
moment().daysInMonth() // 当前月有多少天

操作

moment().add(7, 'days') // 之后的第7天。第2个参数还可以是 'months', 'years' 等为复数
moment().add(7, 'd')// 与上面一行代码的运行结果一样。
moment().subtract(1, 'months') // 上个月
moment().startOf('week') // 这周的第一天
moment().startOf('hour') // 等效与 moment().minutes(0).seconds(0).milliseconds(0)。
// 还支持 'year','month' 等
moment().endOf('week')

查询

// 早于
moment('2018-10-20').isBefore('2018-10-21') // true
moment('2018-10-20').isBefore('2018-12-31', 'year') // false
moment('2018-10-20').isBefore('2019-01-01', 'year') // true
// 是否相等
moment('2018-10-20').isSame('2018-10-20') // true
moment('2018-10-20').isSame('2017-12-31', 'year') // false
moment('2018-10-20').isSame('2018-01-01', 'year') // true
// 晚于
moment('2018-10-20').isAfter('2018-10-19') // true
moment('2018-10-20').isAfter('2018-01-01', 'year') // false
moment('2018-10-20').isAfter('2017-12-31', 'year') // true
// 是否在时间范围内
moment('2018-10-20').isBetween('2018-10-19', '2018-10-25') // true
moment('2018-10-20').isBetween('2018-01-01', '2020-01-01', 'year') // false
moment('2018-10-20').isBetween('2017-12-31', '2020-01-01', 'year') // true
// 是否是闰年
moment().isLeapYear() 

总结

moment.js是一个JavaScript库,它有助于以非常简单的方式在JavaScript中解析,验证,操作和显示日期和时间。moment.js可以直接在浏览器中使用,也可以在Node.js中使用。使用JavaScript处理日期和时间可能非常具有挑战性,特别是如果您要对日期进行大量操作。moment.js具有许多功能,可以简化日期和时间的工作。本文只展示了它常用的用法,详细文档请参考官方文档,那里回有很详细的介绍。

备注

Day.js :是一个轻量的处理时间和日期的 JavaScript 库,如果你的项目不需要那么多额外的功能,选择Day.js也是一个不错的选择,它够轻量;

开源地址:https://github.com/iamkun/dayjs

发表评论:

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