1.在讲js获取给定月份的N个月后的日期之前,小颖先给大家讲下getFullYear()、getYear()的区别。

①getYear()

            var d = new Date()
console.log(d.getYear());

打印结果为:116

小颖百度了下,js中Date对象getYear()方法和getFullYear()方法区别,比如:JS中Date对象getYear()方法和getFullYear()方法区别发现很多人写的是:

在IE中是可以正确获取年份:2016,但是在FF等浏览器下则为:116。

原因则是 在 FF等浏览器内 getYear 返回的是 "当前年份-1900" 的值(即年份基数是1900)

而IE则是 当today的年份大于等于2000的时,直接将1900加上了,返回的 2016。

但是当小颖将上面的代码在IE中运行之后,发现结果还是:116,小颖的IE版本是:

所以小颖觉得可能随着IE版本的更新,IE已经不支持getYear()方法了.不过这只是小颖的猜测,嘻嘻,大家也可以尝试下看看到底是怎样的.

②getFullYear()

            var d = new Date();
console.log(d.getFullYear());

打印结果为:2016

使用getFullYear()在IE和FF中都可以正确获取年份:2016

2.下面我们一起来看看getFullYear()、getMonth()、getDate().

①getFullYear()

定义和用法

getFullYear() 方法可返回一个表示年份的 4 位数字。

浏览器支持

所有主要浏览器都支持 getFullYear() 方法

语法

Date.getFullYear()

返回值

类型 描述
Number 表示年份的 4 位数字。

实例

            var d = new Date();
console.log(d.getFullYear());
var d2=new Date(2015,11,05);
console.log(d2.getFullYear());

打印结果

2016

2015

②getMonth()

定义和用法

getMonth() 方法可返回表示月份的数字。返回值是 0(一月) 到 11(十二月) 之间的一个整数。

注意: 一月为 0, 二月为 1, 以此类推。

浏览器支持

所有主要浏览器都支持 getMonth() 方法

语法

Date.getMonth()

返回值

类型 描述
Number 返回值是 0(一月) 到 11(十二月) 之间的一个整数。

实例

            var d = new Date();
console.log(d.getMonth()+1);//因为getMonth()返回值是 0(一月) 到 11(十二月) 之间的一个整数。所以要给其加1
var d2=new Date(2015,11,05);
console.log(d2.getMonth());

打印结果

12

11

③getDate()

定义和用法

getDate() 方法可返回月份的某一天。

浏览器支持

所有主要浏览器都支持 getDate() 方法

语法

Date.getDate()

返回值

类型 描述
Number dateObject 所指的月份中的某一天,使用本地时间。返回值是 1 ~ 31 之间的一个整数。

实例

            var d = new Date();
var dd1 = d.getDate();
var d2=new Date(2015, 12, 15);
var dd2 = d2.getDate();
console.log(dd1);
console.log(dd2);

打印结果

27

15

3.js获取给定月份的N个月后的日期

①获取当前日期的3个月后的日期

            var d = new Date();
d.setMonth(d.getMonth() + 3);
var yy1 = d.getFullYear();
var mm1 = d.getMonth()+1;//因为getMonth()返回值是 0(一月) 到 11(十二月) 之间的一个整数。所以要给其加1
var dd1 = d.getDate();
if (mm1 < 10 ) {
mm1 = '0' + mm1;
}
if (dd1 < 10) {
dd1 = '0' + dd1;
}
console.log(yy1 + '-' + mm1 + '-' + dd1);

当前时间为:2016年12月27号打印结果    2017-03-27

当前时间为:2016年09月08号打印结果    2016-12-08

②获取给定月份的3个月后的日期

            var d = new Date(2015, 12, 15);
// 因为getMonth()获取的月份的值只能在0~11之间所以我们在进行setMonth()之前先给其减一
d.setMonth((d.getMonth()-1) + 3);
var yy1 = d.getFullYear();
var mm1 = d.getMonth()+1;
console.log(mm1);
var dd1 = d.getDate();
if (mm1 < 10 ) {
mm1 = '0' + mm1;
}
if (dd1 < 10) {
dd1 = '0' + dd1;
}
console.log(yy1 + '/' + mm1 + '/' + dd1);

打印结果

3

2016/03/15

js获取给定月份的N个月后的日期的更多相关文章

  1. js 获取当前月份 第一天和最后一天

    js 获取当前月份 第一天和最后一天 var now = new Date(); //当前日期 var nowMonth = now.getMonth(); //当前月 var nowYear = n ...

  2. java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    package com.zjjerp.tool; import java.text.ParseException; import java.text.ParsePosition; import jav ...

  3. JS获取任意月份的最后一天

    在获取月份天数的时候,因为月份不同,所以每个月的天数也有差异,并且由于平闰年,2月份天数也有所不同,导致程序中获取任意月份的天数十分复杂,下面就用这个方法解决此问题,调用此方法将任意年份和月份传进去, ...

  4. JS获取指定月份的天数几种方法

    最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题.碰到类似问题也许大部分会想是不是还要判断闰年.平年,如果这样想的话就复杂了,下面给出具体的计算方法. 获取月份天数方法一 ...

  5. js处理日期的一些整理(js获取给定日期前一天的日期)

    var date = new Date(); alert(date);//获取当前时间 alert(date.getFullYear());//获取当前年分 alert(date.getMonth() ...

  6. 用js获取当前月份的天数

    在获取每月天数的时候,一般都是存储到一个数组中进行获取,但是如果是二月份的话就需要首先判断是否闰年,再确定是28还是29了. js可以通过Date对象很方便的获取到每月的天数,在初始化Date对象时, ...

  7. JS获取当前月份的最后一天

    <button onclick="function_name()">获取当前月份的最后一天</button> <script type="t ...

  8. JAVA获取当前日期指定月份后(多少个月后)的日期

    环境要求:使用jdk1.8 package com.date; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  9. java和js获取当前天之后或之前7天(任意)日期

    一.获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) /** * 获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) * * @param past * ...

随机推荐

  1. 使用 JavaScriptService 在.NET Core 里实现DES加密算法

    文章<ASP.NET Core love JavaScript>和<跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题> ...

  2. 使用C#处理基于比特流的数据

    使用C#处理基于比特流的数据 0x00 起因 最近需要处理一些基于比特流的数据,计算机处理数据一般都是以byte(8bit)为单位的,使用BinaryReader读取的数据也是如此,即使读取bool型 ...

  3. 如何远程关闭一个ASP.NET Core应用?

    在<历数依赖注入的N种玩法>演示系统自动注册服务的实例中,我们会发现输出的列表包含两个特殊的服务,它们的对应的服务接口分别是IApplicationLifetime和IHostingEnv ...

  4. MSYS2环境下编译X265

    HEVC(High Efficiency Video Coding),是一种新的视频压缩标准.可以替代H.264/ AVC编码,使得保持相同质量的情况下,体积减少40%左右.目前有多种实现版本,x26 ...

  5. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. 从零自学Hadoop(22):HBase协处理器

    阅读目录 序 介绍 Observer操作 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ...

  7. Autofac 的点滴

    泛型类型的注册和使用 public interface IRepository<T> where T:class { } public interface ISchoolDetailRep ...

  8. appium+robotframework环境搭建

    appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...

  9. springMvc的日期转换之二

    方式一:使用@InitBinder注解实现日期转换 前台页面: 后台打印: 方式二:处理多种日期格式类型之间的转换 采用方式:由于binder.registerCustomEditor(Date.cl ...

  10. 跨域问题,前端主动向后台发送cookie

    跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同  http://www.baidu.com:80 和 https:/ ...