zoukankan      html  css  js  c++  java
  • 不一样的日期、时间转换(moment.js)

      无意中遇到了一种很奇怪的日期格式,从接口中返回的日期是这样的,如 2018-02-06T11:59:22+08:00 。然而这却不是我们想要的,我们要的是这种,YYYY-MM-DD HH:mm:ss。

      那么这种是怎么转换的呢?

      这时候就可以使用一款很好用的日期、时间处理工具,moment.js。

      对于moment.js,可以直接使用 CDN加速服务中的moment.js(moment.js),引入moment.js文件便可以开始使用了

    (如:<script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.js"></script>)。

      或者使用npm安装到本地(npm install moment),然后使用的时候像这样

       var moment = require('moment'); moment().format(); 

      举几个常见用法:

      (1)、返回当前的日期时间。  

    moment().format('YYYY-MM-DD HH:mm:ss')  // 2018-02-06 10:53:00
    

      

      (2)、返回当前星期几

    moment().format('d') // 2,表示星期二,其中1-6表示周一到周六,0表示周日
    

      

      (3)、返回指定日期距离当前日期有多久

    moment('20180125','YYYYMMDD').fromNow() // 12 days ago
    

      

      (4)、返回几天后的日期

    moment().add('days',7).format('YYYY年MM月DD日') // 表示7天后的日期
    

       然而在浏览器会有这样的提示:Deprecation warning: moment().add(period, number) is deprecated. Please use moment().add(number, period)。意思是不赞成使用这种方式,推荐使用另一种方式moment().add(number, period)。

      因此,上面那种写法应该改为:

    moment().add(7,'days').format('YYYY年MM月DD日') // 可以写days,也可写day
    

      

      (5)、返回10小时后的日期

    moment().add(10, 'hours').format('YYYY年MM月DD日 HH:mm:ss') // 2018年02月06日 21:07:18。同样的可写hour,也可写hours
    

      

      (6)、返回10年后的日期

    moment().add(10, 'years').format('YYYY年MM月DD日 HH:mm:ss') // 可写year,也可写years
    

      

      现在回过头来说说2018-02-06T11:59:22+08:00这种格式的转换。

      引入moment.js文件

      <script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.js"></script>

      然后 moment('2018-02-06T11:59:22+08:00').format('YYYY-MM-DD HH:mm:ss')就over了。

      常用的时间格式如下:    

    格式代码 说明 返回值例子
    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

  • 相关阅读:
    shell语句for循环
    ls命令详解
    计算机相关概念总结(3)
    计算机相关概念总结(2)
    计算机相关概念总结(1)
    devops的概念
    jenkins无法连接gitlab
    Jenkins创建镜像后无法推送到harbor的问题
    Jenkins+gitlab+maven持续集成
    jenkins打完包在哪里
  • 原文地址:https://www.cnblogs.com/jf-67/p/8421477.html
Copyright © 2011-2022 走看看