`
leeqq
  • 浏览: 137075 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JS中Date对象中几个用法

    博客分类:
  • web
阅读更多

近来工作中遇到这样的两个需求

1. 给个Date对象,找出该时间所在月的第一天和最后一天

2. 给个Date对象,找出该时间所在周的第一天和最后一天

 

需求1中的找月第一天很简单,我记得api中有setDate方法可以使用

使用setDate方法前,先看看getDate

var date = new Date();
console.log(date);
// Sat Jul 18 2015 16:55:23 GMT+0800 (China Standard Time)

date.getDate();
// 18

可见getDate返回的是一个月中的第几天(从1开始)

这就好办了。通过setDate(1) 天设为第一天就好了(返回的是毫秒数)

new Date(date.setDate(1));
// Wed Jul 01 2015 16:55:55 GMT+0800 (China Standard Time)

返回的当月第一天

那么最后一天怎么办,哈哈,取月,看本月多少天,如果是2月还要判断是否是闰年。麻烦。其实在使用setDate的时候,本以为参数是从0开始的,结果出现的这个情况

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:07:48 GMT+0800 (China Standard Time)
console.log(new Date(date.setDate(0)));
// Tue Jun 30 2015 17:07:48 GMT+0800 (China Standard Time)

 

设置setDate(0)之后不是刚开始想的本月第一天,而是上个月最后一天(以前不知道啊)
然后就想到了这个办法

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:11:31 GMT+0800 (China Standard Time)
console.log(new Date(date.setMonth(date.getMonth() + 1, 0)));
// Fri Jul 31 2015 17:11:31 GMT+0800 (China Standard Time)

 成功得一个月的最后一天,

如果设置setDate(-1)将得到上个月倒数第二天

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:18:14 GMT+0800 (China Standard Time)
console.log(new Date(date.setDate(-1)));
// Mon Jun 29 2015 17:18:14 GMT+0800 (China Standard Time)

 

 

月的第一天最后一天是找着了。那周的第一天和最后一天呢?
javascript中是提供了getDay方法,没有提供setDay方法啊,没关系,一周总共7天不会变,不像一个月,有时30天,有时31天,还有28,29天

getDay返回值是0(周日)—— 6(周六)
如此可用如下方法

 

 

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:24:27 GMT+0800 (China Standard Time)

console.log(new Date(date.getTime() - 86400000 * date.getDay()));
// Sun Jul 12 2015 17:24:27 GMT+0800 (China Standard Time)

console.log(new Date(date.getTime() + 86400000 * (6 - date.getDay())));
// Sat Jul 18 2015 17:24:27 GMT+0800 (China Standard Time)

 

如此就解决的上面的问题了

 

ps: 后来又尝试了setMonth()中参数的设置 0(1月) —— 11(12月)
如果设置-1,-2 或者13呢?

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:31:18 GMT+0800 (China Standard Time)

console.log(new Date(date.setMonth(-1)));
// Thu Dec 18 2014 17:31:18 GMT+0800 (China Standard Time)

 可见返回了去年的最后一个月(12月), 如果设置-2则是返回去年倒数第二个月(11月)

var date = new Date();
console.log(date);
// Sat Jul 18 2015 17:34:33 GMT+0800 (China Standard Time)

console.log(new Date(date.setMonth(12)));
// Mon Jan 18 2016 17:34:33 GMT+0800 (China Standard Time)

 

设置12则返回了下一年的第一个月(1月),如果设置13返回下一年的第二个月(2月)

 

如果当前日期是31号比如2015-10-31,此时如果用setMonth将月份设置为9月,得到的将会是哪天呢?会是2015-09-30么?试一下就知道了

var date = new Date(2015, 09, 31);
// Sat Oct 31 2015 00:00:00 GMT+0800 (CST)

date.setMonth(8);
// Thu Oct 01 2015 00:00:00 GMT+0800 (CST)

 没有得到 2015-09-30 而是得到了2015-10-01,就是因为10月比9月多一天,如果从某个日期设置到2月,得到的可能就是3月1号,3月2号,3月3号了

 

吐槽一下:

为什么getMonth, getDay, getHours, getMinutes, getSeconds, getMillseconds返回值都是从0开始,而偏偏getDate返回值是从1开始,这么特殊

 

分享到:
评论

相关推荐

    javascript中Date对象的getDay方法使用指南

    Date对象有个getDay方法,它根据本地时间,返回一个具体日期中一周的第几天。返回值从0~6,分别对应周日~周六 getDay 0 1 2 3 4 5 6 星期几 周日 周一 周二 周三 周四 周五 周六 用到日期相关的需求时...

    原生JS:Date对象全面解析

    此外,Date对象包含了几个静态方法: 1. Date.now(); // 返回从1970-1-1 00:00:00 UTC至今所经过的毫秒数。如果浏览器不支持Date.now(),可以通过兼容旧版浏览器的方法来实现。 2. Date.parse(dateString); // 解析...

    javascript中Date对象的使用总结.docx

    本文档详细介绍了 `Date` 对象的基本使用方法及其提供的多种实用功能,帮助开发者更好地理解和应用这一核心对象。 #### JSON日期转JS日期 在实际开发过程中,我们经常需要处理JSON格式的数据,其中包括日期格式。...

    javascript中Date对象的getDay方法使用指南.docx

    ### JavaScript中Date对象的getDay方法使用指南 #### 一、getDay方法简介 在JavaScript中,`Date`对象提供了一系列的方法用于处理日期和时间。其中`getDay()`方法是其中一个非常实用的功能,它用于获取指定日期是...

    关于js的Date对象的有用扩展

    在“关于js的Date对象的有用扩展”中,我们可以看到一些额外的功能或方法,可能是对原生Date对象的扩展,以满足更复杂的日期处理需求。 在`date.js`文件中,很可能包含了一些自定义函数或原型扩展,这些扩展可能...

    javascript中Date对象应用之简易日历实现_.docx

    本文将详细介绍如何使用JavaScript中的Date对象来实现一个简易的日历功能,并通过具体的代码示例进行讲解。 #### HTML结构解析 在构建简易日历之前,我们先来看看相关的HTML结构。这段代码定义了一个包含输入框...

    javascript转换日期字符串为Date日期对象的方法.docx

    ### JavaScript 转换日期字符串为 Date 日期对象的方法 在 JavaScript 开发中,处理日期是非常常见的需求之一。很多时候,我们需要将用户输入或其他来源得到的日期字符串转换为 `Date` 对象,以便进行进一步的计算...

    javascript中Date format(js日期格式化)方法小结.docx

    ### JavaScript中的Date Format(JS日期格式化)方法详解 #### 概述 在日常的Web开发工作中,我们经常需要处理日期和时间相关的数据。JavaScript 的 `Date` 对象提供了多种方法来获取和设置日期时间,但原生 API 并...

    js date转String 日期字符串转换

    在JavaScript中,`Date`对象提供了多种方法来获取和设置日期及时间。本文将详细介绍如何将`Date`对象转换成字符串格式,这对于数据展示、存储以及传输等场景非常有用。 #### 1. 基本概念 在JavaScript中,`Date`...

    JavaScript程序设计课件:Date对象.pptx

    JavaScript中的Date对象是用于处理日期和时间的核心构造函数,提供了丰富的功能来操作和展示日期。在JavaScript中,Date对象能够创建、格式化、比较以及计算日期。以下是对Date对象的详细解析: 1. 创建Date对象 -...

    js中获取时间new date()的用法.txt

    ### JavaScript 中 new Date() 方法详解 #### 一、概述 在JavaScript编程语言中,`Date`对象被用来处理日期和时间。通过`new Date()`构造函数可以创建一个表示特定时间的`Date`对象实例,该实例可以是当前时间或者...

    JavaScript中Date对象的常用方法示例

    使用 getFullYear() 获取年份。 源代码: [removed] <!DOCTYPE html> <html> <body> ​ <p id=demo>Click the button to display the full year of todays date. ​ <button onclick=myFunction()...

    javascript中Date对象的使用总结

    JavaScript中的Date对象是一个非常重要的内置对象,它提供了丰富的日期和时间的操作功能。无论是处理日期数据的转换、格式化显示还是进行日期时间的计算,Date对象都能帮助我们便捷地完成这些任务。 首先,我们来...

    JavaScript Date对象应用实例分享

    总体而言,文章通过三个具体实例,演示了JavaScript Date对象在获取当前时间、实现倒计时以及应用这些功能在电商场景中的潜在用法。这些知识点对于前端开发人员在处理涉及日期和时间的场景时非常有帮助。

    jsDate插件,时间格式插件

    JavaScript Date(简称jsDate)是一种常见的前端插件,专门用于处理和显示时间,特别是在需要动态更新和自定义格式化的时间展示场景中。这个插件极大地丰富了JavaScript原生Date对象的功能,提供了更多便利的API来...

    js用Date对象的setDate()函数对日期进行加减操作

    JavaScript中的Date对象是处理日期和时间的核心类,它提供了丰富的函数来操作日期,包括设置、获取和计算日期等。在JavaScript中,如果你需要在某个日期上进行加减天数的操作,`setDate()`函数是一个非常实用的方法...

    JS对象和方法

    通过以上对`Date`、`Math`和`Number`对象的详细介绍,我们可以更好地理解和使用这些核心对象及其提供的方法和属性。这些对象是JavaScript开发中不可或缺的一部分,掌握它们将大大提高我们在处理日期、时间和数学计算...

    js Date 获取 年 月 日 具体的值

    通过以上介绍,我们已经了解了如何在JavaScript中使用`Date`对象来获取年、月、日的具体值。这对于开发Web应用程序时处理日期数据非常有用。需要注意的是,在处理日期时还要考虑时区问题,特别是在涉及国际化的项目...

    javascript中cookie对象用法实例分析.docx

    本篇文章将深入探讨JavaScript中Cookie对象的基本概念、使用方法以及具体实例。 #### 二、Cookie概述 Cookie是由服务器发送到客户端的一小段数据,它存储在用户的浏览器中,并可以在未来的请求中被发送回服务器。...

Global site tag (gtag.js) - Google Analytics