如何使用new Date( )及其优化?

405 阅读2分钟

如何使用new Date( )及其优化?

这是一个获取当前事件的对象方法,我们常常用将其用于获取某个数据创建时的时间。在使用的时候,走了很多弯路,所以在这里分享一下作者是如何使用new Date()的。

new Date()表现形式

var d = new Date //创建一个时间点
d 
//打印结果:Wed Aug 11 2021 18:30:08 GMT+0800 (中国标准时间)

d这个对象本身会显示中国的标准时间。

我们需要将这个时间利用起来,最好使用IOS8601格式。所以要对d进行字符串化处理,这里我们使用toISOString()

d.toISOString()
//打印结果:"2021-08-11T10:30:08.298Z"

2021-08-11T10:30:08.298Z是一个标准的ISO8601格式。T之前的是日期,T之后的表示时间,末尾的Z(zero)表示标准时区。注意,这里的标准时区并不是北京时间......

使用ISO8601

获取日期和时间

假设我们需要使用toISOString()化后的数据,我们可以以“T”为分割点,将日期和具体时间分隔开。

const [date, time] = d.toISOString().split('T');

这时候打印date,就可以获取当天的日期了。

date
//打印结果:"2021-08-11"
将日期变成今天

首先设置三个变量表达年月日:

XXX(){
const y = d.getFullYear() //year
const m = d.getMonth()  //month
const t = d.getDate() //today  
}

设置if判断,符合条件返回’今天‘

XXX(string){
const y = d.getFullYear() //year
const m = d.getMonth()  //month
const t = d.getDate() //today  
if(now.getFullYear() === y &&    now.getMonth()=== m && now.getDate() === t){
   return '今天'
}else{
    return string
  }
}

简化时间的调用:Day.js

直接用toISOString()实在是太粗糙了。这里推荐一款插件Day.js,体积仅仅2kb。

安装
npm install dayjs --save
yarn add dayjs
使用

首先需要引入:

import dayjs from 'dayjs';

使用方面,可以自己看官网的format显示操作

这里举个例子你就知道它有多爽了。

同样是将今天的日期显示为’今天‘:

xxx(string){
  if(dayjs(string).isSame(new Date(),'day')){
  return '今天'
  }else{
  return string
  }
}

对比前面的代码,是不是省事很多!!!