在一门语言里,一个日期时间一定有3种表现形式,字符串(如2010-11-11 05:07:08),Long型(一般是1970年1月1日至今的毫秒数),内置对象(在Javascript中就是Date);

那么日期时间操作很常用的一个就是上述三种表现形式的互转和格式化(各种格式的字符串);
moment是Javascript的一个日期时间库,使用它可以很方便的实现上述三种表现形式的互转和字符串表现形式的格式化。

日期时间类型的三种表现形式,字符串是给人读的,Long在传递信息时速度更快,内置对象起到一个中转的角色。

1.字符串转内置对象

new Date(moment("2010-11-11 05:07:08","YYYY-MM-DD HH:mm:ss"))
new Date(moment("12-25-1995", "MM-DD-YYYY"))
new Date(moment("29-06-1995", ["MM-DD-YYYY", "DD-MM", "DD-MM-YYYY"]))
new Date(moment("2010-01-01T05:06:07", moment.ISO_8601))

可以这么转的原因:
moment的toString方法默认返回一个"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ",这种格式的字符串,而这个格式恰恰是Date对象的默认返回格式,所以Date对象可以认出这个字符串。如下:

2.Long型转内置对象
这个功能一般是语言的内置对象要自带,作为内置对象的一个构造方法存在。

上述两个操作可以将任意格式的时间字符串和Long型转成内置对象了,下面是把内置对象转回去。

3.内置对象转为任意格式字符串
事实上,Date对象有有八个内置方法,用于输出为字符串格式,分别为:
1)toString(),把 Date 对象转换为字符串。格式如1所述。
2)toTimeString(),把 Date 对象的时间部分转换为字符串,格式如1所述,取时间部分。
3)toDateString(),把 Date 对象的日期部分转换为字符串,格式如1所述,取日期部分。
4)toGMTString(),获取格林尼治时间字符串
5)toUTCString(),根据世界时,把 Date 对象转换为字符串。
6)toLocaleString(),根据本地时间格式,把 Date 对象转换为字符串。
7)toLocaleTimeString(),根据本地时间格式,把 Date 对象的时间部分转换为字符串。
8)toLocaleDateString(),根据本地时间格式,把 Date 对象的日期部分转换为字符串。
尽管Javascript的Date对象中内置提供了这些输出为字符串的方法,但是这些字符串不是我们来控制格式的,因此如果我们需要我们自己定制的特殊格式,那么又该怎么办呢?
moment提供了强大的format函数,可以将时间display成任意合法格式;

moment(new Date()).format("dddd, MMMM Do YYYY, h:mm:ss a");
moment(new Date()).format("ddd, hA");

4.内置对象转为Long型
跟Long型转为内置对象一样,这个一般也是内置对象提供的功能。Javascript也不例外,Date内置对象提供了getTime方法,返回 1970 年 1 月 1 日至今的毫秒数。Date还有一个静态的方法UTC(),它可以根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数,语法如下

Date.UTC(year,month,day,hours,minutes,seconds,ms)

okay,到这其实就可以结束了。
但是,moment作为一个重量级的Javascript日期时间库,提供了很强大的日期时间操作功能。它其实是对Javascript内置对象Date的封装,所以它可以代替Date对象的中转角色,实现字符串和Long型的互转。
5.任意字符串转Long型
我们知道,Date对象的getTime返回1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,这个其实是UNIX时间戳的计算方式,所以moment提供了一个名为unix的函数,直接获取一个时间的Long型值。
有了这个函数,加上moment本身强大的格式化功能,就可以直接将任意字符串转为Long型了,如下:

moment("2010-11-11 05:07:08","YYYY-MM-DD HH:mm:ss").unix()
moment("12-25-1995", "MM-DD-YYYY").unix()
moment("29-06-1995", ["MM-DD-YYYY", "DD-MM", "DD-MM-YYYY"]).unix()
moment("2010-01-01T05:06:07", moment.ISO_8601).unix()

6.Long型转为任意字符串
在3中已经看到了format函数可以将输出字符串格式化为任意合法的格式,这样就okay了。如下:

moment(1000000).format("dddd, MMMM Do YYYY, h:mm:ss a")
moment(10000000000).format("YYYY-MM-DD hh:mm:ss a");

总结:你只需要看5和6就可以了。

Javascript日期时间表现形式互转相关推荐

  1. JavaScript日期时间详解

    JavaScript日期时间详解 日期与时间 获取时间对象 var date=new Date() 时间的获取方法 date.toString() date.toLocaleString() date ...

  2. jc-datetime :JavaScript 日期时间实用编程

    JavaScript 日期时间实用编程 jc-datetime 文档 邮箱 :291148484@163.com npm 主页:https://www.npmjs.com/package/jc-dat ...

  3. javascript日期时间操作总结

    js获得当前系统日期时间 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http: ...

  4. Javascript日期时间总结

    写这篇文章,总结一下前端JavaScript遇到的时间格式处理. 1 C#时间戳处理 从后台返回的C#时间为:/Date(-62135596800000)/,这个是C#的DateTime.MinVal ...

  5. JavaScript日期时间处理

    日期对象Date new Date()获取当前时间,获取的时间格式是北京时间. Date具有多个实例方法,可以获取年月日.时分秒等. // date对象let date = new Date();// ...

  6. 使用date命令,进行时间戳和日期时间的互转

    首先是知道时间转成时间戳 date -d "2014-01-16 12:30:11" +%s date -d "2014-01-16" +%s # 等价于201 ...

  7. html中日期格式化函数,JavaScript日期时间格式化函数分享

    这个函数经常用到,分享给大家. 函数代码: Date.prototype.format = function(format){ var o = { "M+" : this.getM ...

  8. oracle 日期 extract,ORACLE——EXTRACT() 截取日期时间的函数使用

    1.截取日期的 年: --使用方法 EXTRACT(YEAR FROM DATE) SQL> SELECT EXTRACT( YEAR FROM SYSDATE ) FROM DUAL; --结 ...

  9. php中日期选择代码,实现JS日期时间选择器

    这次给大家带来实现JS日期时间选择器,实现JS日期时间选择器的注意事项有哪些,下面就是实战案例,一起来看一下. flatpickr 是一个轻量级.注重精益.由 UX 驱动和可扩展的 JavaScrip ...

最新文章

  1. python ffmpeg模块,python执行ffmpeg
  2. 程序员:你见过哪些要命的奇葩代码?
  3. 个人觉得不错的网站或文章
  4. python测试用例管理模块_Python的单元测试模块如何检测测试用例?
  5. 博客园的BLOG也申请了
  6. VC++ 6.0的一些使用技巧---IDE的使用
  7. 网信办拟规定:平台未经用户同意不得强制订阅关注账号;Twitter回应大范围宕机;Krita 4.4.0发布|极客头条
  8. 调取方法_最新微信调取转账证据新方法公布
  9. java调用服务器打印机不登录_java – 从网络服务器打印到没有中介的热敏打印机...
  10. (哈工大)计算机网络体系结构——OSI、TCP/IP、5层模型
  11. LTE-OA系统架构图
  12. 马克思主义哲学与价值哲学
  13. RIGHT-BICEP单元测试——“二柱子四则运算升级版”
  14. OKR是上下同欲的载体
  15. ubuntu16.04 护眼神器Redshift
  16. uniCloud云开发
  17. 详解RocketMQ中的consumer
  18. 什么是梯度爆炸与梯度消失
  19. 2015移动安全挑战赛(阿里看雪主办)全程回顾
  20. 企业信息化基本指标构成方案

热门文章

  1. 2020浙江大学软件学院预推免经验
  2. 【C语言】动态内存管理 [进阶篇_ 复习专用]
  3. 计算机应用系统统考配书光盘,统考配书光盘计算机应用基础使用手册
  4. 客户端与服务器信息交互的流程,客户端与服务器的交互流程
  5. 静态网页设计课程设计-周杰伦网站包含源码以及文档,可直接使用
  6. 使用AMCap调整相机参数
  7. matlab 牛顿法 非线性方程,Matlab学习手记——非线性方程组求解:牛顿法
  8. L9110 L9110S SOP8 马达驱动 IC 芯片 H桥全桥 贴片
  9. 【unityshader小实例】 轮廓外发光(光晕)
  10. jieba分词库、WordCloud词云库、requests库