Skip to content

日期对象

new Date()

可以通过 new Date() 获取当前时间

js
const date = new Date()
console.log(date)

getTime()

获取指定日期的时间戳 getTime()

js
const time = new Date('2000-10-1 12:23:11') // 获取目标时间
console.log(time.getTime()) // 使用 getTime() 方法将时间转换为时间戳
// 下面三种方法也可以转换
console.log(time * 1)
console.log(Number(time))
console.log(time.valueOf())

以上转换的 4 种方法都可以使用

  • 将时间戳转换为时间对象
js
const time = new Date('2000-10-1 12:23:11')
const timeList = time.getTime()
console.log(new Date(timeList))

将时间戳转换为时间对象的方法也很简单,只有 new 一个新的日期对象,再把时间戳扔到括号里面即可

new Date(时间戳)

  • 获取当前时间的年月日时分秒
js
const time = new Date() // 获取当前时间
const year = time.getFullYear() // 获取年份
const month = time.getMonth() + 1 // 获取月份
const day = time.getDate() // 获取日
const hour = time.getHours() // 获取小时
const minute = time.getMinutes() // 获取分钟
const res = `${year}-${month}-${day} ${hour}:${minute}`
console.log(res)

这么的写法比较麻烦,我们可以通过封装函数的方法,来实现上面代码段的重复利用

js
// 获取到当前的时间
const time = new Date()

// 封装函数
// date 是当前的时间
// format 处理转换时间的格式
function dateFormat(date, format = 'YYYY-MM-DD HH:mm:ss') {
  // 定义对象处理转换时间的格式
  const config = {
    YYYY: date.getFullYear(),
    MM: date.getMonth() + 1,
    DD: date.getDate(),
    HH: date.getHours(),
    mm: date.getMinutes(),
    ss: date.getMinutes()
  }
  // 用 for in 遍历出对象中的每一项 并使用 replace 替换
  for (const key in config) {
    format = format.replace(key, config[key])
  }
  return format
}

console.log(dateFormat(time, 'YYYY年-MM月-DD日'))
// 2021年-4月-3日

console.log(dateFormat(time, 'YYYY^MM^DD HH^mm^ss'))
// 2021^4^3 20^41^41

toLocaleDateString()

toLocaleDateString() 方法可将 Date 对象的时间转换为字符串

js
const date = new Date()
const res = date.toLocaleDateString()
console.log(res)
// 2021/4/23

Date.now()

Date.now() 获取当前时间戳

js
console.log(Date.now())

通过时间戳,我们可以计算程序执行所用的时间,下面以 for 循环举例

js
const a = Date.now() // 开始执行 for 循环的时间戳
for (i = 0; i < 22222220; i++) {} // 执行 for 循环
const b = Date.now() // 结束 for 循环的时间戳
console.log(b - a) // 两个时间戳相减 = for 循环所用的时间(毫秒)