使用moment.js轻松管理日期和时间
格式化日期
当前时间:
moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09
今天是星期几:
moment().format('d'); //3
转换当前时间的Unix时间戳:
moment().format('X');
相对时间
20120901相对当前日期是2年前
moment("20120901", "YYYYMMDD").fromNow(); //2 years ago
7天前的日期:
moment().subtract('days',7).format('YYYY年MM月DD日'); //2014年10月01日
7天后的日期:
moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日
9小时前的时间:
moment().subtract('hours',9).format('HH:mm:ss');
9小时后的时间:
moment().add('hours',9).format('HH:mm:ss');
moment.js
提供了丰富的说明文档,使用它还可以创建日历项目等复杂的日期时间应用。我们日常开发中最常用的是格式化时间,下面我把常用的格式制作成表格说明供有需要的朋友查看
格式代码 | 说明 | 返回值例子 |
---|---|---|
M | 数字表示的月份,没有前导零 | 1到12 |
MM | 数字表示的月份,有前导零 | 01到12 |
MMM | 三个字母缩写表示的月份 | Jan到Dec |
MMMM | 月份,完整的文本格式 | January到December |
Q | 季度 | 1到4 |
D | 月份中的第几天,没有前导零 | 1到31 |
DD | 月份中的第几天,有前导零 | 01到31 |
d | 星期中的第几天,数字表示 | 0到6,0表示周日,6表示周六 |
ddd | 三个字母表示星期中的第几天 | Sun到Sat |
dddd | 星期几,完整的星期文本 | 从Sunday到Saturday |
w | 年份中的第几周 | 如42:表示第42周 |
YYYY | 四位数字完整表示的年份 | 如:2014 或 2000 |
YY | 两位数字表示的年份 | 如:14 或 98 |
A | 大写的AM PM | AM PM |
a | 小写的am pm | am pm |
HH | 小时,24小时制,有前导零 | 00到23 |
H | 小时,24小时制,无前导零 | 0到23 |
hh | 小时,12小时制,有前导零 | 00到12 |
h | 小时,12小时制,无前导零 | 0到12 |
m | 没有前导零的分钟数 | 0到59 |
mm | 有前导零的分钟数 | 00到59 |
s | 没有前导零的秒数 | 1到59 |
ss | 有前导零的描述 | 01到59 |
X | Unix时间戳 | 1411572969 |
Moment.js 写法示例
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(2011, 9, 16)) // 2011-10-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('2010-10-20').isBefore('2010-10-21') // true
moment('2010-10-20').isBefore('2010-12-31', 'year') // false
moment('2010-10-20').isBefore('2011-01-01', 'year') // true// 是否相等
moment('2010-10-20').isSame('2010-10-20') // true
moment('2010-10-20').isSame('2009-12-31', 'year') // false
moment('2010-10-20').isSame('2010-01-01', 'year') // true// 晚于
moment('2010-10-20').isAfter('2010-10-19') // 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').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // truemoment().isLeapYear() // 是否是闰年
使用moment.js轻松管理日期和时间相关推荐
- JS中的日期和时间详解
JS中的日期和时间详解 关于Date()构造函数 简单实例 用Date()构造函数创建时钟 关于Date()构造函数 Date()构造函数是javascript的核心语言部分,用来创建表示时间和日期的 ...
- 小程序中轻松添加日期和时间的选择
介绍 选择日期和时间,直接使用小程序的默认组件picker,就可以解决了. 选择日期:将mode设置为date 选择事件:将mode设置为time 注意:date和data经常容易被弄混,这里我特别强 ...
- java8日期转时间戳_Java 8日期和时间
java8日期转时间戳 如今,一些应用程序仍在使用java.util.Date和java.util.Calendar API,包括使我们的生活更轻松地使用这些类型的库,例如JodaTime. 但是,J ...
- Java 8日期和时间
如今,一些应用程序仍在使用java.util.Date和java.util.Calendar API,包括使我们的生活更轻松地使用这些类型的库,例如JodaTime. 但是,Java 8引入了新的AP ...
- Python 日期和时间用法超强总结
时间无疑是生活各个方面中最关键的因素之一,因此,记录和跟踪时间变得非常重要.在 Python 中,可以通过其内置库跟踪日期和时间.今天我们来介绍关于 Python 中的日期和时间,一起来了解如何使用t ...
- 收集几个js实现的日期时间控件
/**//** *大部分代码来自meizz的日历控件. *tiannet添加了时间选择功能.select,object标签隐藏功能,还有其它小功能. *使用方法: * (1)只选择日期 & ...
- js获取 日期 星期 时间
代码: <SCRIPT> function Refresh(){ Time.innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.c ...
- moment格式换时间_不一样的日期、时间转换(moment.js)
无意中遇到了一种很奇怪的日期格式,从接口中返回的日期是这样的,如 2018-02-06T11:59:22+08:00 .然而这却不是我们想要的,我们要的是这种,YYYY-MM-DD HH:mm:ss. ...
- Android轻松实现日期选择器、生日选择器、自定义起始时间
前言 Android轻松实现日期选择器.生日选择器.自定义起始时间 废话不多说 看下效果 效果图 代码实现 代码实现比较简单 按照步骤 你也可以实现同样的效果 第一步 设置依赖 android 和an ...
最新文章
- LeetCode 23. Merge k Sorted Lists--Python解法--优先队列,分治法
- CentOS下yum安装nginx服务
- io流文本文档的快速读取
- MySQL数据导入导出(一)
- Xshell连接不上虚拟机,或许该这样做!
- [cogs] 传染病控制
- java用不起_Java,泛型不起作用
- 知道是骗子 !好要撞上去!别太得瑟,没啥么好
- 网易镜像 mysql_Docker的常用镜像及使用方式
- 小学阅读方法六种_小学数学阅读理解解题技巧,附常见的6种方法
- 怀念中国雅虎:技术文化和惨淡命运,互联网营销
- FFmpeg 的AVCodecContext结构体详解
- python怎么切片_python之切片操作
- docker run 的 -i -t -d参数
- 深入理解OkHttp3:(六)Https
- 大学生计算机系统推荐,上大学买电脑?最适合大学生学习用的Windows笔记本电脑推荐!...
- deepin更新linux内核,修改deepin启动内核
- 计算机应用基础名词解释动画,《计算机应用基础》期末考试复习题库-名词解释题题库...
- 目 录 -- 项目管理知识体系指南(PMBOK指南)(第五版)
- 面试官最常问的10道测试用例面试题及答案,每1题都很经典
热门文章
- Delphi中ComPort串口控件通信中的数据处理
- [typescript]请使用“以管理员身份运行”选项启动 Windows PowerShell。要更改当前用户的执行策略,请运行 “Set-ExecutionPolicy -Scope Curren
- 【C#】关于委托和事件
- 是否想快速学习Java? 刻录所有Java教程书籍
- Android 应用开发
- Google登录和facebook登录相关
- 组图:87版《红楼梦》金陵12钗选角内幕
- 一只一元甜筒,一年卖了1200万,宜家的销售阴谋!
- 锚杆拉拔试验弹性模量计算_锚索刚度怎样计算
- 十万万个为什么|二维码支付为啥要限额?