在上一篇文章中,我们了解了 Number 外部对象和 Math 外部对象。 JS中有很多外部对象和技术。 接下来我们来学习一些经常使用的外部技术。有的可以通过外部类直接调用,有的则需要通过实例调用
1.日期类相关
Date是JS中一个关于处理时间的类。 我们可以通过Date类获取当前时间、当前时间戳、不同时区的时间等。
1. 日期实例
Date实例将返回当前时间(字符串,时区与你的笔记本时区一致),不传递参数
Date类接受两个参数,一个接受三个Number类型参数,分别代表年、月、日
正常输入年、月、日
返回日期为 2023 年 5 月 10 日
所以这种传递参数的方法的月份是从0开始的,月份为0,表示一月份
另一个接受格式为“yyyy-MM-dd hh:mm:ss”的字符串,表示年-月-日时:分:秒的格式
正常输出 2023年4月10日 09:37
2.Date的实例方法
我们已经看到,可以通过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获取对应的时间戳
指定获取 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类型
发表评论