日期处理 moment.js

总结一个非常实用的日期工具类moment.js,日期获取,格式化等。
都是以前工作中遇到的,我会在使用工具类的时候新建一个js,工作中遇到要显示什么都在这个文件里尝试,所以这个顺序是我工作中遇到然后在js文件中尝试的顺序,可能顺序稍微乱一些,但是大致没有什么问题。

引入moment
//require 方式
var moment=require(‘moment’);

//import 方式
import moment from ‘moment’;

设定moment区域为中国
//require 方式
require(‘moment/locale/zh-cn’)
moment.locale(‘zh-cn’);
//import 方式
import ‘moment/locale/zh-cn’
moment.locale(‘zh-cn’);

格式化时间类型

格式化日期:moment(value).format(‘YYYY-MM-DD’);

格式化日期时间:moment(value).format(‘YYYY-MM-DD HH:mm:ss’);

初始化日期时间

初始化日期:moment().format(‘YYYY-MM-DD’);

初始化日期时间:moment().format(‘YYYY-MM-DD HH:mm:ss’);

获取前一天日期,格式以YYYY-MM-DD形式显示
var t11=moment().day(0).format(‘YYYY-MM-DD’);

获取本周五日期,格式以YYYY-MM-DD形式显示
var t12=moment().weekday(5).format(‘YYYY-MM-DD’);

获取上周五日期,格式以YYYY-MM-DD形式显示
var t13=moment().weekday(-3).format(‘YYYY-MM-DD’);

可以简单理解为上周倒数第几天,上周倒数第三天就是上周五了,和当天日期无关

获取当前年份、月份、日期
var t14=moment().year()
var t15=moment().month()//此处月份从0开始,当前月要+1
var t16=moment().date();
注意这个地方,日期不是.day()/days()

结合t14,t15,t16就可以输出你想要的任何和当前日期、月份相关的日期
例如:我想获取去年今天的完整日期,如:今天是2018-7-23,我要输出的是2017-7-23

console.log(${t14-1}-${t15+1}-${t16})
当然这不是获取去年今天日期最好的办法,但你可以拼出很多你想要的组合,下面会介绍更好的获取去年今日的方法。

获取上个月今天的日期,格式以YYYY-MM-DD显示
var t18=moment().subtract(1, ‘months’).format(‘YYYY-MM-DD’);

获取上个月日期,格式以YYYY-MM显示
var t19=moment().subtract(1, ‘months’).format(‘YYYY-MM’)

获取前一天日期,格式以YYYY-MM-DD显示
var t20 = moment().subtract(1, ‘days’).format(‘YYYY-MM-DD’);

获取去年今天的日期,格式以YYYY-MM-DD显示,即简便的获取去年今天日期的方法
var t21= moment().subtract(1, ‘year’).format(‘YYYY-MM-DD’);

获取两个小时之后的时间
var t22=moment().add(2,‘hours’).format(‘YYYY-MM-DD HH:mm:ss’);

这个的应用是获取时间戳过期时间
比较也很简单,只要获取当前时间,一样的format用><=号比较就可以了

获取五天前的日期
例如:今天2018-7-23,获取到的时间是2018-7-18

var t23=moment().subtract(5, ‘days’).format(‘YYYY-MM-DD’);

  1. 获取时间差(以毫秒计算)

两个日期/时间的时差:

this.moment(endTime).diff(this.moment(startTime),'days' )

==>>  开始时间和结束时间的时间差,以“天”为单位;endTime和startTime都是毫秒数

this.moment(endTime).diff(this.moment(startTime), 'minutes')

==>>  开始时间和结束时间的时间差,以“分钟”为单位

==>> 注意:计算时间差时,可以以 “years”、“days”、“hours”、“minutes” 以及 "seconds" 为单位输出!
 

  // (对比值1, 对比值2, 差值格式(years,months,days))
  dateDifference(value1, value2, format) {
    if(!!value1 && !!value2 ){
      value1 = moment(value1).format('YYYY-MM-DD')
      value2 = moment(value2).format('YYYY-MM-DD')
      return moment(value2).diff(moment(value1), format)
    } else {
      return null
    }
  }

原文链接:https://blog.csdn.net/halo1416/article/details/83620022

作者:xxt1ngt1ng
链接:https://www.jianshu.com/p/e5b7c0606a3f
来源:简书
著作权归作者所有。非商业转载。

原文链接:https://blog.csdn.net/halo1416/article/details/83620022

https://blog.csdn.net/halo1416/article/details/83620022

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值