Moment.js常见用法总结

From: https://www.jianshu.com/p/9c10543420de

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]



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN并购博客园遐想

我要打“假想”,打成了“遐想”,不过确实这篇文章属于我个人YY出来的。主要晚上写博客,用live writer发布好多次都不成功,然后用浏览器访问博客园首页,出现了下面画面。估计很多人都很熟悉这个界面,因为阿里…

Linux C 深入分析结构体指针的定义与引用

关于结构体的基础知识&#xff0c;网上书上都一大堆&#xff0c;这里就不赘述了&#xff0c;下面我们要学习的是结构体指针。 介绍结构体指针之前&#xff0c;先给大家看一个小程序&#xff1a; [cpp] view plaincopy #include <stdio.h> #include <string.h> …

20155313 预备作业二

你有什么技能比大多人&#xff08;超过90%以上&#xff09;更好&#xff1f;针对这个技能的获取你有什么成功的经验&#xff1f;与老师博客中的学习经验有什么共通之处&#xff1f; 说到一个比90%的人要强的技能&#xff0c;我一下子很惆怅&#xff0c;说起来&#xff0c;从小家…

react 父子组件之间相互传值

From: https://blog.csdn.net/luzhaopan/article/details/85003362 1、定义父组件 import React, { PureComponent } from react; export default class Father extends PureComponent { render(){ return( <div> …

android 多线程概述

android多线程&#xff0c;一直是一个麻烦的事情&#xff0c;要掌握它的本质&#xff0c;我们需要搞清楚一个问题&#xff0c;linux多线程的本质。 我们这篇文章&#xff0c;来讨论以下的议程&#xff1a; 了解linux的历程&#xff0c;了解android的异步任务机制&#xff0c;了…

Linux 进程间通讯详解一

进程间的通讯 两台主机间的进程通讯 --socket一台主机间的进程通讯 --管道&#xff08;匿名管道&#xff0c;有名管道&#xff09; --System V进程间通信&#xff08;IPC&#xff09;包括System V消息队列&#xff0c;System V信号量&#xff0c;System V共享内存 --socket 进程…

Linux C 函数指针应用---回调函数

&#xff08;这里引用了知乎上一些知友的回答&#xff0c;感觉不错&#xff0c;有助于理解&#xff0c;这里引用作为借鉴&#xff0c;如有冒犯&#xff0c;烦请告知&#xff09; 我们先来回顾一下函数指针&#xff0c;函数指针是专门用来存放函数地址的指针&#xff0c;函数地址…

laravel+vue开发环境搭建

From: https://www.jianshu.com/p/1c2cc11ba46f 描述 最近通过laravel在公司做了一些项目&#xff0c;但本身前端出身的我&#xff0c;总是感觉lphp开发过程中,前端写好页面&#xff0c;然后后端还需要再套blade模板&#xff0c;感觉这样开发效率太慢&#xff0c;太low。于是自…

GC Blocks Lost等待事件

在Oracle RAC环境中&#xff0c;无论我们从AWR自动负载性能报告、Statspack或者Grid Control中都可以找到Oracle数据库软件所收集的全局缓存工作负载统计信息(global cache work load statistics)&#xff1b;其中就包含了全局缓存块丢失(Global cache lost blocks)的统计信息(…

What's VPC (by quqi99)

作者&#xff1a;张华 发表于&#xff1a;2014-12-09版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) VPC&#xff08;virtual private cloud&#xff0c;虚拟私有云&#xff…

WCF简单教程(5) 用IIS做Host

第五篇&#xff1a;用IIS做Host之前几篇的Demo中&#xff0c;我们一直在用控制台程序做Server&#xff0c;今天换IIS来做Host&#xff0c;在Web Application中添加WCF的服务。其实在Web Application中添加WCF服务是最简单的&#xff0c;“新建项”中有专用的“WCF服务”&#x…

黑苹果折腾记

From: https://fishedee.com/2018/10/04/%E9%BB%91%E8%8B%B9%E6%9E%9C%E6%8A%98%E8%85%BE%E8%AE%B0/ 1 概述 黑苹果折腾记&#xff0c;原来的Macbook Pro已经不太好用了&#xff0c;运行编译时就开始风扇呼呼声的响&#xff0c;我只有想办法将苹果安装上现有的台式机上了。 类…

解决爬虫中文乱码问题

解决爬虫中文乱码问题 今天群里有个人反映某个网址爬出来的网页源代码出现中文乱码&#xff0c;我研究了半天&#xff0c;终于找到了解决方法。 一开始&#xff0c;我是这样做的&#xff1a; import requestsurl http://search.51job.com/jobsearch/search_result.php?fromJs…

记录每个用户的操作记录(命令)

通过设置日志文件可以对每个用户的每一条命令进行记录&#xff0c;这一功能默认是不开放的&#xff0c;为了打开它&#xff0c;需要安装pacct工具&#xff0c;并执行以下命令&#xff1a; #touch /var/log/pacct #accton /var/log/pacct 执行读取命令lastcomm [user name] –f …

多进程 VS 多线程

在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试&#xff0c;发现切换线程context的时候&#xff0c;windows比linux快一倍多。进出最快的锁&#xff08;windows2k的 critical section和linux的pthread_mutex&#xff09;&#xff0c;windows比linux的要快…

黑苹果SSDT使用

From: https://blog.csdn.net/qq_33544860/article/details/77320073 1.在Clover引导界面&#xff0c;按一下&#xff3b;F4&#xff3d;,就会在EFI\CLOVER\ACPI\origin\生成好多*.aml的文件&#xff0c;例如APIC.aml&#xff0c;BGRT.aml&#xff0c;DSDT.aml&#xff0c;HPE…

c# 如何在webbrowser控件执行一段JS代码

var doc this.WebBrowser.Document.DomDocument as IHTMLDocument2; var win doc.parentWindow as IHTMLWindow2;string jscode "//这里写JS代码";win.execScript(jscode, "javascript");转载于:https://www.cnblogs.com/pasijiubiehuozhe/p/6201439.ht…

一夜暴富之前的漫漫长路

一夜暴富之前的漫漫长路发布于&#xff1a;2013-08-05 09:50阅读数&#xff1a;987那你现在在做什么&#xff1f; 唉&#xff0c;我讨厌这个问题。 事实上&#xff0c;我正在努力做一个新的项目&#xff0c;但没有取得任何的进展。 但是&#xff0c;我并没有抱怨什么&#xff0…

java开发过程中,报错Dangling meta character '*' near index 0,解决办法

From: https://blog.csdn.net/zhouzhiwengang/article/details/53493810 1、split方法转化字符串为数组&#xff1a; String[] strPicArr map.get("hw_pic").toString().split("*"); 报错&#xff1a; java.util.regex.PatternSyntaxException: Dangling…

演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤

各位童鞋注意&#xff1a;该实验完成可以使用GNS3与4虚拟机进行桥接&#xff0c;然后在一台物理计算机上完成&#xff0c;不虽要去拿真正的4台服务器或者交换机路由器来连成一个网络&#xff0c;现在大家都使用网络仿真教学与实验&#xff01;Linux工程环境应用实训&#xff08…