javascript时间戳转换-JavaScript学习笔记(14)

在上一篇文章中,我们了解了 Number 外部对象和 Math 外部对象。 JS中有很多外部对象和技术。 接下来我们来学习一些经常使用的外部技术。有的可以通过外部类直接调用,有的则需要通过实例调用

1.日期类相关

Date是JS中一个关于处理时间的类。 我们可以通过Date类获取当前时间、当前时间戳、不同时区的时间等。

1. 日期实例

Date实例将返回当前时间(字符串,时区与你的笔记本时区一致),不传递参数

Date类接受两个参数,一个接受三个Number类型参数,分别代表年、月、日

正常输入年、月、日

javascript时间戳转换_js中将时间戳转化为日期_js转化时间戳

返回日期为 2023 年 5 月 10 日

所以这种传递参数的方法的月份是从0开始的,月份为0,表示一月份

另一个接受格式为“yyyy-MM-dd hh:mm:ss”的字符串,表示年-月-日时:分:秒的格式

正常输出 2023年4月10日 09:37

2.Date的实例方法

javascript时间戳转换_js中将时间戳转化为日期_js转化时间戳

我们已经看到,可以通过Date()实例获取当前时间。 如果只想获取当前的年份或月份等,可以通过Date类的相关实例来获取。

此代码于 2023 年 4 月 10 日 09:46 运行

注意:

1、以上方法都是实例方法。 需要创建一个Date实例来调用,不能直接通过Date调用。

2.获取当前日期的方式是getDate,而不是getDay

3、getMonth方法是从0开始的,也就是说getMonth的返回值应该是当前月份-1。 例如图中getMonth的返回值为3而不是4。

4、getDay方法返回当前星期几,从星期一开始,返回值从1开始

3.获取当前时间戳

时间戳基于自 1970 年 1 月 1 日(通用标准时间)以来的微秒数。 目前使用的时间戳有两种,一种是精确到纳秒(13位)的时间戳,另一种是精确到纳秒(13位)的时间戳。 第二个是精确到秒(10 位)的时间戳。 原生JS中很难直接获取精确到秒的时间戳,只能获取精确到纳秒的时间戳(如果需要精确到秒,可以通过一些第三方库,或者在与其他方法结合)

JS可以通过Date的静态方法的now方法获取当前13位时间戳(可以直接通过类名调用,不需要通过实例)

现在调用静态方法

注意

1. now是Date类的静态方法,可以通过Date类直接调用,不能通过Date相关实例调用

2、返回的是一个13位的Number类型数据,表示从1970年1月1日至今的微秒数

3、返回的时间戳会根据你当前笔记本的时区而变化(这一点在项目在线部署时要注意javascript时间戳转换,很可能项目部署环境的时区与你的时区不同)你的开发笔记本)

使用时间戳的用处在于可以很容易地估计两个日期相距多远,所以当涉及到时间估计时,通常使用时间戳来表示时间

4.获取指定日期的时间戳

结合上面学到的知识,我们可以先通过new Date(指定时间)生成具体的指定时间,然后通过valueOf获取对应的时间戳

js转化时间戳_javascript时间戳转换_js中将时间戳转化为日期

指定获取 1970 年 1 月 1 日的时间

因为我笔记本的时区是北京时间javascript时间戳转换,所以1970年1月1日0:00:00,北京时间是1969年12月31日16:00:00 UTC,时间戳是从UTC 0:00开始的1970 年 1 月 1 日 :00,所以我们想要得到时间戳 0,我们应该将日期更改为 1970 年 1 月 1 日 08:00:00

注意

1.注意时区问题

2、valueOf方法是实例方法,需要通过Date实例调用

3.返回的时间戳是Number类型