new Date().getMonth() 的取值问题

本文详细解析了一段JavaScript代码,展示了如何通过循环和Date对象获取当前月份,并通过实例解释了月份从0开始的原因及获取全球标准时间的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是去一家公司的面试题,感觉没有什么难的,不就取出当前的月份循环,然后判断打印几次,请您看一下这几行代码,

 

<SCRIPT language="JavaScript">

 function poot(){

  for(var i=0;i<new Date().getMonth();i++){
       alert(
'@_@');
      alert(new Date().getFullYear()+"年"+new Date().getMonth()+"月"+new Date().getDate()+"号")
  }

}

poot();

</SCRIPT>

 

js 执行结果new Date().getMonth() 的取值为1,所以循环一次

 

通过查文档,api这样写


getMonth 方法
返回 Date 对象中用本地时间表示的月份值。

dateObj.getMonth()

必选项 dateObj 参数为 Date 对象。

说明
要获取用全球标准时间 (UTC)表示的月份值,请使用 getUTCMonth 方法。

getMonth 方法返回一个处于 0 到 11 之间的整数,它代表 Date 对象中的月份值。这个整数并不等于按照惯例来表示月份的数字,而是要比按惯例表示的值小 1。如果一个 Date 对象中保存的时间值是 "Jan 5, 1996 08:47:00",那么 getMonth 方法就会返回 0。

示例
下面这个例子说明了 getMonth 方法的用法:

function DateDemo(){
   var d, s = "今天日期是: ";
   d = new Date();
   s += (d.getMonth() + 1) + "/";
   s += d.getDate() + "/";
   s += d.getYear();
   return(s);
}

 

 

我也就明白为什么会打印一次了,因为月份是从0开始的

 

 

### JavaScript 中处理日期的方法 在 JavaScript 中,`Date` 对象用于处理日期和时间。创建 `Date` 实例的方式有多种: #### 创建 Date 对象 可以直接通过 new 关键字来实例化一个新的 Date 对象。 ```javascript let currentDate = new Date(); console.log(currentDate); // 输出当前的日期时间和时区信息[^1] ``` 如果想要指定特定的时间,则可以在构造函数内传入参数。 ```javascript // 使用年月日作为参数初始化 let specificDate = new Date(2023, 9, 17); console.log(specificDate); // 或者传递一个表示日期字符串给构造器 let dateString = 'October 18, 2023'; let dateFromStr = new Date(dateString); console.log(dateFromStr); ``` 需要注意的是,在月份部分是从零开始计数(即 January=0),这与其他编程语言不同。 #### 获取日期组件 一旦有了 `Date` 对象之后就可以调用其方法获取各个组成部分的信息了。 ```javascript let d = new Date(); // 取得完整的四位数字形式的年份 let year = d.getFullYear(); // 获得月份 (注意返回值范围是 0 到 11) let month = d.getMonth() + 1; // 得到一个月中的某一天 (也就是几号),取值区间为 1 至 31 let dayOfMonth = d.getDate(); // 星期几 (星期天至周六分别对应 0~6 的整数值) let weekday = d.getDay(); // 小时 (采用二十四小时制), 返回值介于 0 和 23 之间 let hours = d.getHours(); // 分钟 数值位于 0 ~ 59 间 let minutes = d.getMinutes(); // 秒 零到五十九之间的整数 let seconds = d.getSeconds(); // 毫秒 占位符从 0 到 999 不等 let milliseconds = d.getMilliseconds()[^1]; ``` 这些属性可以帮助开发者轻松地解析并操作任何给定的日期对象。 #### 设置日期组件 除了读取外还可以修改已有的 `Date` 对象里的某些字段。 ```javascript d.setFullYear(yearValue[, monthValue[, dayValue]]); d.setMonth(monthValue[, dayValue]); d.setDate(dayValue); ... ``` 以上就是一些基本的操作方式;当然还有更多高级特性等待探索,比如国际化支持、格式化输出等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值