好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

JavaScript Date

JavaScript Date

Date 用于创建 一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。

Date 对象可以用于处理日期和时间。

Date 对象使用的频率非常高,大量的业务需要对时间进行操作。

1. 基本使用

Date 需要实例化后使用。

  var  date  =   new   Date  (  )  ; 
 

时间最大的两个使用场景是格式化时间与 获取 时间戳。

1.1 获取 时间戳

当实例化时没有传递参数给 Date 的时候,则表示创建的对象为实例化时刻的时间。

使用 getTime 即可 获取 时间戳。

  var  date  =   new   Date  (  )  ; 
 var  timestamp  =  date .  getTime  (  )  ; 

console .  log  ( timestamp )  ;   //  输出 当前时 间的 时间戳 
 

部分开发者会利用隐式转换的规则来 获取 时间戳。

  var  date  =   new   Date  (  )  ; 
 var  timestamp  =   + date ; 

console .  log  ( timestamp )  ;   //  输出 当前时 间的 时间戳 
 

也可以通过 valueOf 来 获取 时间戳。

  var  date  =   new   Date  (  )  ; 
 var  timestamp  =  date .  valueOf  (  )  ; 

console .  log  ( timestamp )  ;   // 还是 输出 当前时 间的 时间戳 
 

推荐使用 getTime 方法 来 获取 时间戳,以便他人阅读 代码 以及避免不必要的问题。

1.2 格式化时间

格式化时间可以理解成把时间处理成想要的格式,如 年-月-日 时:分;秒 。

通过 Date 对象提供的一些 方法 ,可以获得到对应的时间 属性 。

假如想把时间格式化成 年/月/日 时:分:秒 的形式:

  var  date  =   new   Date  (  )  ; 

 var  YYYY  =  date .  getFullYear  (  )  ; 
 var  MM  =  date .  getMonth  (  )   +   ; 
 var  DD  =  date .  getDate  (  )  ; 
 var  hh  =  date .  getHours  (  )  ; 
 var  mm  =  date .  getMinutes  (  )  ; 
 var  ss  =  date .  getSeconds  (  )  ; 

console .  log  (  [ YYYY ,   '/'  ,  MM ,   '/'  ,  DD ,   ' '  ,  hh ,   ':'  ,  mm ,   ':'  ,  ss ]  .  join  (  ''  )  )  ; 
 

通过 Date 对象提供的 获取 年、月、日、时、分、秒的 方法 获取 到对应的值,最后按照想要的格式拼接即可。

需要注意的是 getMonth() 方法 返回的月份是 0 至 11 ,更像是月份的索引,实际上对应的月份还要 加上 1 。

2. 构造 函数 的参数

Date 对象可以提供 4 种类型的参数,通过参数决定时间,最后对象的实例的操作都围绕这个决定的时间。

2.1 不传递参数

当不传递参数的时候,时间会被设置为实例化那一时刻的时间。

2.2 Unix 时间戳

这个方式与第一种不传递参数的方式是最常用的两种。

应用场景大部分为从服务端 获取 数据后,对时间戳进行格式化 显示 。

  var  data  =   {  _id :   ''  ,  createdAt :   ,  content :   ''   }  ; 

 var  date  =   new   Date  ( data . createdAt )  ; 

 var  YYYY  =  date .  getFullYear  (  )  ; 
 var  MM  =  date .  getMonth  (  )   +   ; 
 var  DD  =  date .  getDate  (  )  ; 
 var  hh  =  date .  getHours  (  )  ; 
 var  mm  =  date .  getMinutes  (  )  ; 
 var  ss  =  date .  getSeconds  (  )  ; 

console .  log  (  [ YYYY ,   '/'  ,  MM ,   '/'  ,  DD ,   ' '  ,  hh ,   ':'  ,  mm ,   ':'  ,  ss ]  .  join  (  ''  )  )  ; 
 //  输出 :2016/12/25 10:19:42 
 

2.3 时间戳字符串

这里并不是指字符串形式的 Unix 时间戳 ,而是符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601 标准的时间字符串。

实际上只要能被 Date.parse 正确解析成时间戳的字符串,都可以作为参数传递过去。

  var  timestamp  =  Date .  parse  (  '2020/02/02 11:22:33'  )  ; 

 var  date1  =   new   Date  ( timestamp )  ; 
 var  date2  =   new   Date  (  '2020/02/02 11:22:33'  )  ; 
 

2.4 日期的每 一个 时间 属性

这里的时间 属性 是指:年、月、日、时、分、秒、毫秒。

参数也按照这个顺序传递。

  // 2048年10月24日 9点9分6秒 
 var  date  =   new   Date  (  ,    -   ,   ,   ,   ,   ,   )  ; 

 var  YYYY  =  date .  getFullYear  (  )  ; 
 var  MM  =  date .  getMonth  (  )   +   ; 
 var  DD  =  date .  getDate  (  )  ; 
 var  hh  =  date .  getHours  (  )  ; 
 var  mm  =  date .  getMinutes  (  )  ; 
 var  ss  =  date .  getSeconds  (  )  ; 

console .  log  (  [ YYYY ,   '/'  ,  MM ,   '/'  ,  DD ,   ' '  ,  hh ,   ':'  ,  mm ,   ':'  ,  ss ]  .  join  (  ''  )  )  ; 
 //  输出 :2048/10/24 9:9:6 
 

第二个参数之所以要减去 1 ,是因为月份是从 0 开始计算的,所以十月应该表示成 9 。

3. 其他常用 方法

常量 描述 Date.UTC 方法 接受的参数同日期构造 函数 接受最 多参数 时一样,返回从 1970-1-1 0 UTC到指定日期的的毫秒数。 Date.now 返回自 1970 年 1 月 1 日 0 (UTC) 到当前时 间的 毫秒数。 Date.parse 解析 一个 表示某个日期的字符串,并返回从1970-1-1 0 UTC 到该日期对象(该日期对象的 UTC 时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。 Date.getDate 根据本地时间,返回 一个 指定的日期对象为 一个 月中的哪一日(从 1–31)。 Date.getDay 根据本地时间,返回 一个 具体日期中一周的第几天,0 表示星期天。 Date.getFullYear 根据本地时间返回指定日期的年份。 Date.getHours 方法 根据本地时间,返回 一个 指定的日期对象的小时。 Date.getMilliseconds 根据本地时间,返回 一个 指定的日期对象的毫秒数。 Date.getMinutes 方法 根据本地时间,返回 一个 指定的日期对象的分钟数。 Date.getMonth 根据本地时间,返回 一个 指定的日期对象的月份,为基于 0 的值(0 表示一年中的第一月)。 Date.getSeconds 方法 根据本地时间,返回 一个 指定的日期对象的秒数。

4. 小结

Date 对象用于处理日期与时间。

通常会采用 不传参 或者 传递 一个 Unix 时间戳 来 生成 Date 实例,另几种参数形式使用场景较少。

需要注意的是, getMonth 方法 返回的月份,是从 0 开始计数的,对应真实月份需要 加上 1 。

JavaScript RegExp ? ?JavaScript Math

查看更多关于JavaScript Date的详细内容...

  阅读:36次

上一篇

下一篇

第1节:什么是 JavaScript    第2节:学习环境准备    第3节:调试方案    第4节:JavaScript 变量    第5节:JavaScript 数据类型    第6节:JavaScript if 语句    第7节:for 语句    第8节:JavaScript 算数运算符    第9节:JavaScript 比较运算符    第10节:JavaScript 逻辑运算符    第11节:JavaScript 函数    第12节:JavaScript 表达式    第13节:JavaScript 对象    第14节:JavaScript 字符串    第15节:JavaScript 数字    第16节:JavaScript 数组    第17节:JavaScript switch 语句    第18节:JavaScript while 语句    第19节:JavaScript 的 break 与 continue    第20节:JavaScript with    第21节:document.cookie    第22节:JavaScript Function    第23节:JavaScript Math    第24节:JavaScript Date    第25节:JavaScript RegExp    第26节:JavaScript JSON    第27节:什么是 DOM    第28节:DOM 和 JavaScript 的关系    第29节:获取和操作 DOM 节点    第30节:DOM 与事件    第31节:DOM 事件绑定    第32节:DOM 事件对象    第33节:DOM 事件流    第34节:事件相关的优化    第35节:自定义事件    第36节:表单校验    第37节:什么是 BOM    第38节:常用的 BOM 相关对象    第39节:BOM 常用属性和方法    第40节:AJAX    第41节:异常处理    第42节:三元运算符    第43节:逗号操作符    第44节:void    第45节:typeof    第46节:delete 操作符    第47节:debugger    第48节:getter & setter    第49节:new 运算符与构造函数    第50节:JavaScript 原型    第51节:JavaScript instanceof    第52节:JavaScript this    第53节:严格模式    第54节:作用域    第55节:闭包    第56节:变量提升    第57节:对象包装器    第58节:Lodash    第59节:moment    第60节:swiper    第61节:ECMAScript 6    第62节:Node.js    第63节:Babel    第64节:CSS 预处理器    第65节:代码规范    第66节:TypeScript    第67节:WebComponents    第68节:Vue、React、Angular    第69节:小程序    第70节:JavaScript 关键字    第71节:分号导致的问题    第72节:对象属性访问问题    第73节:this 使用问题    第74节:浮点数精度问题    第75节:独一无二的 NaN    第76节:避免全局污染    第77节:控制台观察对象问题    第78节:根据环境选择语言特性    第79节:相关资源