JavaScript setFullYear() 方法

, Read in about 2 min

Posted by Ryen on Wednesday, May 6, 2020
With final update in December 26,2023

本文总阅读量

定义和用法

setFullYear() 方法用于设置年份。

语法

dateObject.setFullYear(year,month,day)
参数 描述
year 必需。表示年份的四位整数。用本地时间表示。
month 可选。表示月份的数值,介于 0 ~ 11 之间。用本地时间表示。
day 可选。表示月中某一天的数值,介于 1 ~ 31 之间。用本地时间表示。

返回值

返回调整过的日期的毫秒表示。

提示和注释:

**注释:**该方法总是结合一个 Date 对象来使用。

实例

例子 1

在本例中,我们将通过 setFullYear() 把年份设置为1992:

<script type="text/javascript">

var d = new Date()
d.setFullYear(1992)
document.write(d)

</script>

输出:

Wed May 06 1992 09:39:04 GMT+0800 (中国标准时间)

例子 2

在本例中,我们将通过 setFullYear() 把日期设置为 November 3, 1992:

<script type="text/javascript">

var d = new Date()
d.setFullYear(1992,10,3)
document.write(d)

</script>


输出:

Tue Nov 03 1992 09:39:04 GMT+0800 (中国标准时间)

以下为小技巧:

setFullYear() 方法用于设置年份

  • 事情发生的很奇妙,最近看到一个朋友用H5模板做了一个网站,展现的内容是关于爱情主题,浪漫表白。
  • 看到之后,哇塞……这个好玩,我自己也要做一个,然而……当进行网站源码拷贝修改参数的时候……我发现了一个很严重的问题:那就是在我修改时间参数为3月31日,实际生产的相识时间,竟然出现了负数!
  • 面对这样的问题,瞬间有点蒙蔽,深深的觉得不科学,那么,问题出在哪里呢?
  • 仔细排查源代码,发现时间算法并没有错,整个代码流程阅读下来非常流畅,唯一小缺陷可能就是不是用的new Date()方法初始化当前时间,但是问题也不算太大,毕竟程序还是可以走通的。那么,究竟是哪里出问题导致了设置的3月31不对,甚至是负数的情况,这简直有点茫然。
  • 带着疑问,我看了下我朋友的那个网站,发现实际显示的时间与他设置的时间有着一个月的时间差距,这……算是BUG吗?
  • 怀着懵逼的情绪,我对setFullYear()方法产生了疑惑……当然,看到这里,如果JS知识非常扎实的朋友可能早就知道问题在哪里了……
  • 是的,setFullYear()方法设置时间的参数中,第二个对月份设置的参数,从0—11开始计算,与数组的表达方式一致,也就是说一月份设置,用0来表达,而我设置3,直接就是四月三十一了,所以展示出来的天数,自然是负数,与此同时,表达天数的参数设置,还是正常的1-31来表达,只有月份那边有差别。
  • 至于为什么要这么不按常理出牌……我也不知道……
  • 记录一下这次遇到的错误,谨记!

「真诚赞赏,手留余香」

Ryen's Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付