不一样的日期时间转换(moment.js)

Posted 心欲无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不一样的日期时间转换(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

以上是关于不一样的日期时间转换(moment.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Moment.js 日期转换为用户本地时区?

使用moment.js轻松管理日期和时间

moment.js使用方法

无法使用 moment.js 返回 UTC 日期时间

Unix时间戳的moment.js格式?

moment.js 快捷查询