我们有两种方式获取,一种是new Date()得到时间对象,一种是Date函数对象静态方法获取。

new Date()Date的区别就是,前者是构造函数,后者是函数对象,函数对象返回的,只是我们需要的值,他不会有Date对象的内置方法(prototype),所以,它的使用更简洁明确,但是如果我们想要获取时间的年份,月份,星期几,那么new Date()才是最好的选择。

new Date() 获取

const date = new Date();  //没有传入参数获取当前本地时间

date.getTime();   //1626746413673

date.valueOf();  //1626746413673

data*1;  //1626746413673

Number(date);  //1626746413673

这里数字的转换,其实依赖于继承自Date构造函数的prototype上的valueOf方法,valueOf返回的是原始值,Date中,原始值是1970年1月1日午夜以来的毫秒数。

所以,在转换成数字格式前,会调用valueOf得到原始值,再进行转换。

如果我们改动一下valueOf:

const date = new Date();
date.valueOf = () => {
  return 1;
}

date * 1;  //1

结果如同预期一样。

Date 获取

Date.now();  //1626746413673

通过函数对象Date的静态方法获取

传入参数

我们也可以指定时间参数,Date的参数,建议是时间戳或者ISO时间格式,但是ISO时间格式有的是短横线,如:2021-03-23 23:45:59

有的浏览器并不支持短横线,改成斜线即可,并且月份和日期最好是两位数,不够补零。

2021/03/23 23:45:59
分类: JavaScript 标签: 时间戳Date时间对象

评论

暂无评论数据

暂无评论数据

目录