/** * 针对时间的工具类 */
var DateTimeUtil = function () {/***     * 获得当前时间     */this.getCurrentDate = function () {return new Date();};/***     * 获得本周起止时间     */this.getCurrentWeek = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//返回date是一周中的某一天var week = currentDate.getDay();//返回date是一个月中的某一天var month = currentDate.getDate();//一天的毫秒数var millisecond = 1000 * 60 * 60 * 24;//减去的天数var minusDay = week != 0 ? week - 1 : 6;//alert(minusDay);//本周 周一var monday = new Date(currentDate.getTime() - (minusDay * millisecond));//本周 周日var sunday = new Date(monday.getTime() + (6 * millisecond));//添加本周时间startStop.push(monday); //本周起始时间//添加本周最后一天时间startStop.push(sunday); //本周终止时间//返回return startStop;};/***     * 获得本月的起止时间     */this.getCurrentMonth = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var currentMonth = currentDate.getMonth();//获得当前年份4位年var currentYear = currentDate.getFullYear();//求出本月第一天var firstDay = new Date(currentYear, currentMonth, 1);//当为12月的时候年份需要加1//月份需要更新为0 也就是下一年的第一个月if (currentMonth == 11) {currentYear++;currentMonth = 0; //就为} else {//否则只是月份增加,以便求的下一月的第一天currentMonth++;}//一天的毫秒数var millisecond = 1000 * 60 * 60 * 24;//下月的第一天var nextMonthDayOne = new Date(currentYear, currentMonth, 1);//求出上月的最后一天var lastDay = new Date(nextMonthDayOne.getTime() - millisecond);//添加至数组中返回startStop.push(firstDay);startStop.push(lastDay);//返回return startStop;};/**     * 得到本季度开始的月份     * @param month 需要计算的月份     ***/this.getQuarterSeasonStartMonth = function (month) {var quarterMonthStart = 0;var spring = 0; //春var summer = 3; //夏var fall = 6; //秋var winter = 9; //冬//月份从0-11if (month < 3) {return spring;}if (month < 6) {return summer;}if (month < 9) {return fall;}return winter;};/**     * 获得该月的天数     * @param year年份     * @param month月份     * */this.getMonthDays = function (year, month) {//本月第一天 1-31var relativeDate = new Date(year, month, 1);//获得当前月份0-11var relativeMonth = relativeDate.getMonth();//获得当前年份4位年var relativeYear = relativeDate.getFullYear();//当为12月的时候年份需要加1//月份需要更新为0 也就是下一年的第一个月if (relativeMonth == 11) {relativeYear++;relativeMonth = 0;} else {//否则只是月份增加,以便求的下一月的第一天relativeMonth++;}//一天的毫秒数var millisecond = 1000 * 60 * 60 * 24;//下月的第一天var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1);//返回得到上月的最后一天,也就是本月总天数return new Date(nextMonthDayOne.getTime() - millisecond).getDate();};/**     * 获得本季度的起止日期     */this.getCurrentSeason = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var currentMonth = currentDate.getMonth();//获得当前年份4位年var currentYear = currentDate.getFullYear();//获得本季度开始月份var quarterSeasonStartMonth = this.getQuarterSeasonStartMonth(currentMonth);//获得本季度结束月份var quarterSeasonEndMonth = quarterSeasonStartMonth + 2;//获得本季度开始的日期var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1);//获得本季度结束的日期var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, this.getMonthDays(currentYear, quarterSeasonEndMonth));//加入数组返回startStop.push(quarterSeasonStartDate);startStop.push(quarterSeasonEndDate);//返回return startStop;};/***     * 得到本年的起止日期     *     */this.getCurrentYear = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前年份4位年var currentYear = currentDate.getFullYear();//本年第一天var currentYearFirstDate = new Date(currentYear, 0, 1);//本年最后一天var currentYearLastDate = new Date(currentYear, 11, 31);//添加至数组startStop.push(currentYearFirstDate);startStop.push(currentYearLastDate);//返回return startStop;};/**     * 返回上一个月的第一天Date类型     * @param year 年     * @param month 月     **/this.getPriorMonthFirstDay = function (year, month) {//年份为0代表,是本年的第一月,所以不能减if (month == 0) {month = 11;//月份为上年的最后月份year--; //年份减1return new Date(year, month, 1);}//否则,只减去月份month--;return new Date(year, month, 1); ;};/**     * 获得上一月的起止日期     * ***/this.getPreviousMonth = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var currentMonth = currentDate.getMonth();//获得当前年份4位年var currentYear = currentDate.getFullYear();//获得上一个月的第一天var priorMonthFirstDay = this.getPriorMonthFirstDay(currentYear, currentMonth);//获得上一月的最后一天var priorMonthLastDay = new Date(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth(), this.getMonthDays(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth()));//添加至数组startStop.push(priorMonthFirstDay);startStop.push(priorMonthLastDay);//返回return startStop;};/**     * 获得上一周的起止日期     * **/this.getPreviousWeek = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//返回date是一周中的某一天var week = currentDate.getDay();//返回date是一个月中的某一天var month = currentDate.getDate();//一天的毫秒数var millisecond = 1000 * 60 * 60 * 24;//减去的天数var minusDay = week != 0 ? week - 1 : 6;//获得当前周的第一天var currentWeekDayOne = new Date(currentDate.getTime() - (millisecond * minusDay));//上周最后一天即本周开始的前一天var priorWeekLastDay = new Date(currentWeekDayOne.getTime() - millisecond);//上周的第一天var priorWeekFirstDay = new Date(priorWeekLastDay.getTime() - (millisecond * 6));//添加至数组startStop.push(priorWeekFirstDay);startStop.push(priorWeekLastDay);return startStop;};/**     * 得到上季度的起始日期     * year 这个年应该是运算后得到的当前本季度的年份     * month 这个应该是运算后得到的当前季度的开始月份     * */this.getPriorSeasonFirstDay = function (year, month) {var quarterMonthStart = 0;var spring = 0; //春var summer = 3; //夏var fall = 6; //秋var winter = 9; //冬//月份从0-11switch (month) { //季度的其实月份case spring://如果是第一季度则应该到去年的冬季year--;month = winter;break;case summer:month = spring;break;case fall:month = summer;break;case winter:month = fall;break;};return new Date(year, month, 1);};/**     * 得到上季度的起止日期     * **/this.getPreviousSeason = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前月份0-11var currentMonth = currentDate.getMonth();//获得当前年份4位年var currentYear = currentDate.getFullYear();//上季度的第一天var priorSeasonFirstDay = this.getPriorSeasonFirstDay(currentYear, currentMonth);//上季度的最后一天var priorSeasonLastDay = new Date(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2, this.getMonthDays(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth() + 2));//添加至数组startStop.push(priorSeasonFirstDay);startStop.push(priorSeasonLastDay);return startStop;};/**     * 得到去年的起止日期     * **/this.getPreviousYear = function () {//起止日期数组var startStop = new Array();//获取当前时间var currentDate = this.getCurrentDate();//获得当前年份4位年var currentYear = currentDate.getFullYear();currentYear--;var priorYearFirstDay = new Date(currentYear, 0, 1);var priorYearLastDay = new Date(currentYear, 11, 1);//添加至数组startStop.push(priorYearFirstDay);startStop.push(priorYearLastDay);return startStop;};
};

转载于:https://www.cnblogs.com/liuxn/p/3382045.html

[转] Js获取 本周、本月、本季度、本年、上月、上周、上季度、去年时间段相关推荐

  1. js获取本周的周一、周日和上周的周一、周日

    1.js获取本周的周一.周日和上周的周一.周日 var now =new Date(); var nowTime =now.getTime(); var day =now.getDay(); var ...

  2. moment 取年月日_moment.js获取本周本月本年的开始日期和结束日期

    //获取本日 const startDate = moment().format('YYYY-MM-DD'); const startDate = moment().format('YYYY-MM-D ...

  3. 获取 本周本月本季度本年开始时间和结束时间

    获取 本周本月本季度本年开始时间和结束时间 转载连接:https://blog.csdn.net/Augus3344/article/details/51015704

  4. java 本年第一个月_JAVA获取本周 本月 本年 第一天和最后一天

    JAVA获取本周 本月 本年 第一天和最后一天 /** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ pub ...

  5. java,js获取本周和下周开始结束日期

    额,本人第一次下博文,先写一篇看看咋写. 文章目录 前言 一.java下获取本周开始结束日期以及根据某个日期获取本周开始结束日期 二.js获取本周或下周日期 总结 前言 前几天开发时用到了一些获取本周 ...

  6. oracle sql获取本季度,oracle sql 获取本季度所有月份,上季度所有月份

    上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...

  7. js获取本周、本月、本季、本年的第一天

    今天项目中要获取本周.本月.本季.本年的第一天,发现网上的方法或多或少都有问题,于是自己写了一个,亲测可用. 同时回顾了一下js日期对象的知识,做个总结 先上代码: 1 /** 2 * 获取指定日期的 ...

  8. JS获取本周、本季度、本月、上月的开端日期、停止日期

    Js代码 /** * 获取本周.本季度.本月.上月的开端日期.停止日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); ...

  9. js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天 ...

  10. JS获取本周、本季度、本月、上月的开始日期、结束日期

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date();                    //当前日期 var nowDayOfWeek = ...

最新文章

  1. linux下多线程实现服务端
  2. IntelliJ IDEA 不能识别 Java 项目
  3. nodejs 利用zip-local模块压缩文件夹
  4. 利用python爬取房价
  5. 尾气冒黑烟是什么问题_烟囱里冒得白烟、黑烟、黄烟有什么危害?
  6. [sqlite] android create db in SD card
  7. 【转】sql server 订阅发布、快照发布(一)
  8. 【渝粤教育】广东开放大学 跨文化商务沟通 形成性考核 (39)
  9. 安卓rom制作教程_【ROM消息】Simplicity官改:MIUI11 9.12.14全机型更新
  10. java xps文档_使用Java 将PPT转换为PDF、XPS等格式
  11. 神经元在人体内如何分布,人体神经元怎么分布的
  12. python 判断数字是奇数还是偶数
  13. 前端预言 未来前端的发展方向
  14. 【SqlServer】错误 0xc00470fe: 数据流任务: 产品级别对于 组件“源 - TestDB01$”(1) 而言不足
  15. springfox接口文档如何关闭
  16. 强势推出的超拽个性签名档:如果你是一朵花,那牛都不拉粪了
  17. 100、网页端的人脸识别
  18. 移动端KISSY学习
  19. kettle Spoon.bat闪退解决办法
  20. 经验分享帖 基于STM32的超声波测距HC-SR04(附程序)

热门文章

  1. simpleperf 使用记录
  2. python中open打开路径问题_Python学习笔记之open()函数打开文件路径报错问题
  3. 自旋锁spin_lock
  4. Linux kernel路由机制分析(上)
  5. android app唯一标识符,android 唯一识别码笔记
  6. 如何分析个股基本面_个股分析报告要分析哪些方面?股票基本面分析实例
  7. c++派生类构造顺序
  8. cocos2d-x 3.0对label的改进
  9. 二分图的最大匹配--匈牙利算法
  10. php项目部署到linux服务器,thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决...