开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3天,点击查看活动详情
上一次掘金的征文活动,准确来说,应该是去年的最后一次掘金官方的征文活动,我没有参加那一次征文活动。距离上一次征文,好像有两三个月了,感觉时间过得有点漫长了,都快要忘记掘金的征文活动了。
现在掘金推出了新的一年的征文活动-掘金日新计划 · 2 月更文挑战,又要开始新的一年,新的一轮的征文挑战了。
征文挑战已经开始了,而我即将要参与这次征文活动,参与挑战,挑战自己。
提升系列
提升系列,我主要是想写一些平时工作上面,自己会用到的一些好的技巧或者方法。当然,这些技巧和方法是针对我自己的。
除此之外,还可能会写一些解决难点的方法。比如,遇到了某个难点,要通过什么方法来解决它?
正如它的名字一样--提升,通过学习一些好的技巧、方法,或者解决一些难题、难点,来提升我们的能力。
出这个提升系列,一方面,是提升自己的开发能力;另一方面,也希望这个提升系列,可以帮助到部分人,提升他们的开发能力。
在这个系列里,我能想到的或者实现方法,不一定是最好的。欢迎大家参与讨论。
前言
在前面的文章里,我们主要是介绍了Date类的setDate方法的相关内容以及使用介绍。利用setDate的这一特性,我们就可以很好地实现获取前面几天的效果。
接下来,我要简单介绍一下Date这个类的一些特性,看下这些特性是什么以及有什么的作用。
Date
我们到mdn上面,查看一下对Date类的介绍
创建一个 JavaScript
Date实例,该实例呈现时间中的某个时刻。Date对象则基于 Unix Time Stamp,即自 1970 年 1 月 1 日(UTC)起经过的毫秒数。
我们平常在开发的过程中,如果想要进行一些和时间有关的操作,通常会new 一个Date实例对象出来,进行操作。
我们来通过代码来演示一下。
示例
先创建一个index.html文件,我们的演示代码将在这个文件里面完成。
let time = new Date();
console.log(time);
我们到浏览器打开这个html文件,可以看到,把Date的示例对象打印出来了。
这个实例对象上面有许多操作时间相关的api,比如获取时间戳的getTime方法,获取年份的getFullYear方法等等。我们平常使用时,就是这样实例化一个Date的实例对象,来进行对时间相关的操作。
这只是对Date的基本介绍,还有其它内容吗?
我们new 一个Date实例对象时,都是没有传递参数的。在实例化Date类的实例对象时,那我们是否可以传递参数呢?
带着这一个疑问,我们到MDN上面查看一下资料。
在MDN上,我们可以看到对Date类的使用示例
new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
原来使用Date的类的时候,我们还可以传递参数,来对时间做对应的指定。
我们看MDN上面,对传递参数的解释:
- 如果没有输入任何参数,则 Date 的构造器会依据系统设置的当前时间来创建一个 Date 对象。
- 如果提供了至少两个参数,其余的参数均会默认设置为 1(如果没有指定 day 参数)或者 0(如果没有指定 day 以外的参数)。
我们查看最后一个示例,可以看到,使用Date类的时候,可以传递年、月、日、时等。
传递参数可以传递日,这正是我们想要的。我们来使用一下。
new Date(2023,2,5)
我们new一个Date的实例对象,传递参数是当前时间。
我们调用Date的getDate方法,查看一下天数。
我们在前面几章讲解Date类的setDate的方法时,有讲过,如果给setDate方法,传递参数0,则会返回上一个月最后的一天的日期。那在new Date实例对象时,天数传递一个0会发生什么?
我们尝试一下
let time = new Date(2023, 2, 0);
console.log(time.getDate());
newDate实例对象,并且使用getDate方法,把天数给打印出来。
我们可以看到打印出来的是28。这时,我们查看一下电脑的日历,可以发现,2月份的最后一天就是28。刚好就是我们在浏览器控制台里面打印出来的值。
说明,如果在new Date实例对象时,如果天数传递为0,那么会把时间设置为传入参数月份的最后一天。
使用这个特性,我们就可以完成获取前面几天的功能了。
小结
对本篇文章进行一个总结:
本小节主要介绍了Date类的一些相关的基础知识,同时也发现了一个新特性:
在new Date类实例对象时,我们还可以传递参数。如果传递的天数为0,则会把时间设置为传递参数里月份的最后一天。