js中日期Date的使用

日常搬砖过程中,凡事使用到Date总是一知半解,每次都要查阅资料,今天有时间把这里整理一下,希望今天储备的知识,够以后使用就不用查阅资料了哈,现在开始吧

  • new Date()

使用它可以创建一个日期实例,并返回代表当前时间的字符串

接收参数有5种形式

  1. 无参数,新创建的 Date 对象代表当前的日期和时间

  2. 时间戳值,例如: new Date(1715136443087)

  3. 日期字符串 new Date(“December 17, 1995 03:24:00”); // 不被鼓励,可能不会在所有运行时环境 new Date(“1995-12-17T03:24:00”); // 这是符合 ISO-8601 标准的,将可靠地工作

  4. 日期对象 一个现有的 Date 对象。这实际上是在现有的 Date 对象上复制了一个相同的日期和时间。

  5. 日期和时间组件的单独值, new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds) 例如: new Date(2020, 5, 19, 25, 65) 将返回 2020 年 6 月 20 日凌晨 2:05。

以上都可生成一个日期对象,但有时我们也会遇到只有一个Date(),这种形式,我们分别打印一下返回值,发现Date()生成的是一个类时间对象的字符串,区别要记牢.

  • 如何获取时间戳
  1. 获取当前的时间戳
 Date.now()  
  1. valueOf: 该方法返回日期的毫秒表示,可以方便时间的比较,该方法返回的毫秒数精确到毫秒。
new Date().valueOf()
  1. Number: 返回表示日期的毫秒数,与valueOf()返回的值相同,也精确到毫秒数。
Number(new Date())
  1. getTime: 返回表示日期的毫秒数,与valueOf()返回的值相同,也精确到毫秒数。
 new Date().getTime()
  • Date.parse: 该方法接受一个表示日期的字符串参数,然后尝试根据这个日期返回日期的毫秒数。ECMA-262没有定义该方法支持哪种日期格式,因此这个方法的行为因为浏览器实现而异。如果传入字符串不能表示日期,那么它会返回NaN。该方法返回的毫秒值后三位全为0,精确到秒数,没有毫秒数。
 Date.parse(date)
  • 根据时间对象获取指定时间
 let date = new Date()

返回该日期对象的字符串,该字符串格式因不同语言而不同

 date.toLocaleString() // '2024/5/8 11:21:56'

返回指定日期对象日期部分的字符串,该字符串格式因不同语言而不同

date.toLocaleDateString()  // '2024/5/8'

返回日期对象对应的年、月、日、时、分、秒、毫秒、星期几

date.getFullYear() // 2024
date.getMonth() // 4
date.getDate() // 8 日期
date.getDay() // 3 星期
date.getHours() // 11
date.getMinutes() // 21
date.getSeconds() // 56
date.getMilliseconds() //217
  • 时间处理的几个方法

获取两个时间相差多少天

 function betweenDate(date1, date2){
    let oneDay = 1000*60*60*24
    return Math.round((date1-date2)/oneDay)
}

let date1 = new Date('2024-05-08')
let date2 = new Date('2024-04-08')
betweenDate(date1, date2) // 30

格式化指定的时间

function getDateTime(date, format){
    const map = {
        YY: date.getFullYear(),
        MM: date.getMonth()+1,
        DD: date.getDate(),
        HH: date.getHours(),
        mm: date.getMinutes(),
        ss: date.getSeconds()
    }
    return format.replace(/YY|MM|DD|HH|mm|ss/g, key => {
        return ('0' + map[key]).slice(-2)
    })
}
let now = new Date()
getDateTime(now, 'YY-MM-DD HH:mm:ss')  //'24-05-08 15:55:34'
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值