时间和日期的JS库Moment.js常见用法总结
Moment.js常见用法总结
Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。
日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。接下来,我将按照这些操作对Moment.js中的Doc进行整理分类,方便学习和日后的查阅。
获取时间
Start of Time
moment().startOf(String)
获取今天0时0分0秒
moment().startOf('day')
获取本周第一天(周日)0时0分0秒
moment().startOf('week')
获取本周周一0时0分0秒
moment().startOf('isoWeek')
获取当前月第一天0时0分0秒
moment().startOf('month')
End of Time
moment().endOf(String)
获取今天23时59分59秒
moment().endOf('day')
获取本周最后一天(周六)23时59分59秒
moment().endOf('week')
获取本周周日23时59分59秒
moment().endOf('isoWeek')
获取当前月最后一天23时59分59秒
moment().endOf('month')
Days in Month
moment().daysInMonth()
获取当前月的总天数
moment().daysInMonth()
Timestamp
获取时间戳(以秒为单位)
moment().format('X') // 返回值为字符串类型 moment().unix() // 返回值为数值型
获取时间戳(以毫秒为单位)
moment().format('x') // 返回值为字符串类型 moment().valueOf() // 返回值为数值型
Get Time
获取年份
moment().year() moment().get('year')
获取月份
moment().month() (0~11, 0: January, 11: December) moment().get('month')
获取一个月中的某一天
moment().date() moment().get('date')
获取一个星期中的某一天
moment().day() (0~6, 0: Sunday, 6: Saturday) moment().weekday() (0~6, 0: Sunday, 6: Saturday) moment().isoWeekday() (1~7, 1: Monday, 7: Sunday) moment().get('day') mment().get('weekday') moment().get('isoWeekday')
获取小时
moment().hours() moment().get('hours')
获取分钟
moment().minutes() moment().get('minutes')
获取秒数
moment().seconds() moment().get('seconds')
获取当前的年月日时分秒
moment().toArray() // [years, months, date, hours, minutes, seconds, milliseconds] moment().toObject() // {years: xxxx, months: x, date: xx ...}
设置时间
Set Time
moment().year(Number), moment().month(Number)... moment().set(String, Int) moment().set(Object)
设置年份
moment().year(2019) moment().set('year', 2019) moment().set({year: 2019})
设置月份
moment().month(11) (0~11, 0: January, 11: December) moment().set('month', 11)
设置某个月中的某一天
moment().date(15) moment().set('date', 15)
设置某个星期中的某一天
moment().weekday(0) // 设置日期为本周第一天(周日) moment().isoWeekday(1) // 设置日期为本周周一 moment().set('weekday', 0) moment().set('isoWeekday', 1)
设置小时
moment().hours(12) moment().set('hours', 12)
设置分钟
moment().minutes(30) moment().set('minutes', 30)
设置秒数
moment().seconds(30) moment().set('seconds', 30)
Add Time
moment().add(Number, String) moment().add(Object)
设置年份
moment().add(1, 'years') moment().add({years: 1})
设置月份
moment().add(1, 'months')
设置日期
moment().add(1, 'days')
设置星期
moment().add(1, 'weeks')
设置小时
moment().add(1, 'hours')
设置分钟
moment().add(1, 'minutes')
设置秒数
moment().add(1, 'seconds')
Subtract Time
moment().subtract(Number, String) moment().subtract(Object)
设置年份
moment().subtract(1, 'years') moment().subtract({years: 1})
设置月份
moment().subtract(1, 'months')
设置日期
moment().subtract(1, 'days')
设置星期
moment().subtract(1, 'weeks')
设置小时
moment().subtract(1, 'hours')
设置分钟
moment().subtract(1, 'minutes')
设置秒数
moment().subtract(1, 'seconds')
格式化时间
Format Time
moment().format() moment().format(String)
格式化年月日: 'xxxx年xx月xx日'
moment().format('YYYY年MM月DD日')
格式化年月日: 'xxxx-xx-xx'
moment().format('YYYY-MM-DD')
格式化时分秒(24小时制): 'xx时xx分xx秒'
moment().format('HH时mm分ss秒')
格式化时分秒(12小时制):'xx:xx:xx am/pm'
moment().format('hh:mm:ss a')
格式化时间戳(以秒为单位)
moment().format('X') // 返回值为字符串类型
格式化时间戳(以毫秒为单位)
moment().format('x') // 返回值为字符串类型
比较时间
Difference
moment().diff(Moment|String|Number|Date|Array)
获取两个日期之间的时间差
let start_date = moment().subtract(1, 'weeks') let end_date = moment()end_date.diff(start_date) // 返回毫秒数end_date.diff(start_date, 'months') // 0 end_date.diff(start_date, 'weeks') // 1 end_date.diff(start_date, 'days') // 7 start_date.diff(end_date, 'days') // -7
转化为JavaScript原生Date对象
moment().toDate()
new Date(moment())
将Moment时间转换为JavaScript原生Date对象
let m = moment() let nativeDate1 = m.toDate() let nativeDate2 = new Date(m)String(nativeDate1) === String(nativeDate2) // true
实战
获取昨日0时0分0秒到昨日23时59分59秒, 格式:[milliseconds, milliseconds]
获取上周一到上周日时间范围,格式: [seconds, seconds]
获取上个月第一天和最后一天时间范围, 格式:[YYYY-MM-DD, YYYY-MM-DD]
时间和日期的JS库Moment.js常见用法总结相关推荐
- 移动开发js库Zepto.js使用中的一些注意点
来自http://chaoskeh.com/blog/some-experience-of-using-zepto.html的参考. 前段时间完成了公司一个产品的 HTML5 触屏版,开发中使用了 Z ...
- 前端学习-使用JS库Leaflet.js生成世界地图并获取标注地址经纬度。
介绍:Leaflet是一个开源的JavaScript库,对移动端友好且对地图有很好的交互性. 大小仅仅只有 33 KB, 同时具有大多数地图所需要的特点. Leaflet设计的非常简单易懂, 同时具有 ...
- 前端高效开发必备的 js 库梳理
之前有很多人问学好前端需要学习哪些 js 库, 主流框架应该学 vue 还是 react ? 针对这些问题, 笔者来说说自己的看法和学习总结. 首先我觉得在学习任何知识之前必须要有一个明确的学习目标, ...
- 创建自己的共用js库
直至昨晚为止,学习了一个多月的MVC与jQuery,从所做的练习中,发觉jQuery的代码也有跟C#语言一样可以重构,多页面有相同使用的方法函数,均可以放置于一个单独立的js文件或是自定义的js库中. ...
- 使用模块化工具Rollup打包自己开发的JS库
使用模块化工具Rollup打包自己开发的JS库 打包JS库demo项目地址:https://github.com/Miazzy/xdata-utils-btools 背景 最近有个需求,需要为小程序写 ...
- 介绍两个用于生成二维码的js库
生成二维码的js库 QRCode.js 简介 使用示例 jquery.qrcode.js 简介 使用示例 调整二维码尺寸 QRCode.js 简介 这是一个原生的js库,用于生成二维码. github ...
- android 日期时间类,Android 时间与日期操作类
获取本地日期与时间 public String getCalendar() { @SuppressLint("SimpleDateFormat") SimpleDateFormat ...
- 【卡法 常用 ckl.js 库】: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度...
[卡法 常用js库]: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度 // +---------------------- ...
- 【微收藏】FourShadows.js – 时间感知的算法驱动的图标阴影JS库
废话一箩筐,筐筐有心得 不小心养成了一个刷微博的习惯,主要还是关注一些前端人士,学习一些前端方面的知识,看到大家都有一些刷微博的小习惯.有的是转发一下,转发内容来一个标记(MARK).也有评论中标记为 ...
- 基于腾讯 x5 开源库,提高 webView 开发效率,大概要节约你百分之六十的时间成本。该案例支持处理 js 的交互逻辑且无耦合、同时暴露进度条加载进度、可以监听异常 error 状态、支持视频播放
YCWebView 项目地址:yangchong211/YCWebView 简介: 基于腾讯 x5 开源库,提高 webView 开发效率,大概要节约你百分之六十的时间成本.该案例支持处理 js 的交 ...
最新文章
- JavaScript(八)
- linux和哪些主机配了互信,linux主机互信
- PAT1049 数列的片段和 (20 分)
- hdu 1418(不相交的曲线分面)
- python创建一个json_如何为Python选择一个更快的JSON库
- mysql系列之6--------使用第三方工具-percona来备份mysql和恢复
- 华师网教计算机应用基础作业,华师大网络教育选修课《计算机应用基础统考》平时作业答案(13页)-原创力文档...
- 补充轻量级持久层V2版本的测试页面模板与实体类模板
- 软件设计---概要设计和详细设计
- OpenCV 对比度增强
- Rewrite 做二级域名转向
- uniapp uview 1.x设置遮罩层全屏loading
- 区块链:现实与未来的二律背反
- 手把手教你用Python批量实现在Excel后里面新加一列,并且内容为excel 表名(附源码)...
- 浅谈css3的3D动画效果并制作一个简单的旋转照片墙
- 嵌入式Linux设备驱动面试题汇总
- C++核心准则SF.7:不要在头文件中的全局作用域中使用using namespace指令
- LoRa进行跳频扩频通信(FHSS)的原理
- 机顶盒编解码视频质量测试方法
- 博客园好文,转载作者:欢跳的心写的一篇关于《window 删除文件提示指定的文件名无效或太长 - 欢跳的心 - 博客园》