5种获取JavaScript时间戳函数的方法

5种获取JavaScript时间戳函数的方法

一、JavasCRIPT时间转时间戳

JavaScript获得时间戳的方法有五种,后四种都是通过实例化时间对象new Date() 来进一步获取当前的时间戳,JavaScript处理时间主要使用时间对象Date

方法一:Date.now()

Date.now()可以获得当前的时间戳:

console.log(Date.now()) //1642471441587
方法二:Date.parse()

Date.parse()将字符串或者时间对象直接转化成时间戳:

Date.parse(new Date()) //1642471535000
Date.parse("2022/1/18 10:05") //1642471500000

注意:不推荐这种办法,毫秒级别的数值被转化为000。

方法三:valueOf()

通过valueOf()函数返回指定对象的原始值获得准确的时间戳值:

(new Date()).valueOf() //1642471624512
方法四:getTime()

通过原型方法直接获得当前时间的毫秒值,准确:

new Date().getTime() //1642471711588
方法五:Number

将时间对象转化为一个number类型的数值,即时间戳

Number(new Date()) //1642471746435

二、js时间戳转时间

我们可以接用 new Date(时间戳) 格式转化获得当前时间,比如:

new Date(1472048779952)
Wed Aug 24 2016 22:26:19 GMT+0800 (中国标准时间)

** 注意:时间戳参数必须是 Number 类型,如果是字符串,解析结果:Invalid Date 。 **

如果后端直接返回时间戳给前端,前端如何转换呢?下面介绍2种实现方式

方法一:生成’2022/1/18 上午10:09 '格式
方案1:.toLocaleString().replace(/:\d{1,2}$/,’ ')
function getLocalTime(n) {
   
      
   return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/,' ');   
}   
getLocalTime(1642471746435) //'2022/1/18 上午10:09 '
方案2:.toLocaleString().substr(0,14)

也可以用如下,想取几位就几位,注意,空格也算!

function getLocalTime(n) {
   
      
    return new Date(parseInt(n)).toLocaleString().substr(0,14)
}   
getLocalTime(1642471746435) //'2022/1/18 上午10'
方案3:正则 .toLocaleString().replace(/年|月/g, “-”).replace(/日/g, " ")

或者利用正则:

function  getLocalTime(n){
   
   
   return new Date(parseInt(n)).toLocaleString().replace(/年|月/g, "-").replace(//g, " ");
}
getLocalTime  (1642471746435)  //'2022/1/18 上午10:09:06'
方法二:生成’yyyy-MM-dd hh:mm:ss '格式

先转换为data对象,然后利用拼接正则等手段来实现:

function getData(n){
   
   
  n=new Date(n)
  return n.toLocaleDateString().replace(/\//g, "-") + " " + n.toTimeString().substr(0, 8)
}
getData(1642471746435) //'2022-1-18 10:09:06'

不过这样转换在某些浏览器上会出现不理想的效果,因为toLocaleDateString()方法是因浏览器而异的,比如 IE为"2016年8月24日 22:26:19"格式 ;搜狗为"Wednesday, August 24, 2016 22:39:42"

可以通过分别获取时间的年月日进行拼接,这样兼容性更好:

function getData(n) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值