//格式化日期:yyyy-MM-dd  

function formatDate(date) {    
  var myyear = date.getFullYear();   
  var mymonth = date.getMonth()+1;   
  var myweekday = date.getDate();    
     
  if(mymonth < 10){   
    mymonth = "0" + mymonth;   
  }    
  if(myweekday < 10){   
    myweekday = "0" + myweekday;   
  }   
  return (myyear+"-"+mymonth + "-" + myweekday);    
}    
   
//获得某月的天数   
function getMonthDays(paraYear,paraMonth){   
  var monthStartDate = new Date(paraYear, paraMonth, 1);    
  var monthEndDate = new Date(paraYear, paraMonth + 1, 1);    
  var  days  =  (monthEndDate  -  monthStartDate)/(1000  *  60  *  60  *  24);    
  return  days;    
}    
   
//获得某周的开始日期   
function getWeekStartDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {    
  var weekStartDate = new Date(paraYear, paraMonth, paraDay + 1 - paraDayOfWeek);    
  return formatDate(weekStartDate);   
}    
   
//获得某周的结束日期   
function getWeekEndDate(paraYear,paraMonth,paraDay,paraDayOfWeek) {    
  var weekEndDate = new Date(paraYear, paraMonth, paraDay + (7 - paraDayOfWeek));    
  return formatDate(weekEndDate);   
}    
   
//获得某月的开始日期   
function getMonthStartDate(paraYear,paraMonth){   
  var monthStartDate = new Date(paraYear, paraMonth, 1);    
  return formatDate(monthStartDate);   
}   
   
//获得某月的结束日期   
function getMonthEndDate(paraYear,paraMonth){ 
  var monthEndDate = new Date(paraYear,paraMonth, getMonthDays(paraYear,paraMonth));    
  return formatDate(monthEndDate);   
}  

//获得上月开始时间  
function getLastMonthStartDate(paraYear, lastMonth){  
  var lastMonthStartDate = new Date(paraYear, lastMonth, 1);  
  return formatDate(lastMonthStartDate);   
} 

//获得上月结束时间  
function getLastMonthEndDate(paraYear, lastMonth, lastMonth){  
  var lastMonthEndDate = new Date(paraYear, lastMonth, getMonthDays(lastMonth));  
  return formatDate(lastMonthEndDate);   
}  
   
//获得某季度的开始日期   
function getQuarterStartDate(paraYear,paraSeason){   
  switch (paraSeason){   
    case '1' : return paraYear+"-01-01";
    case '2' : return paraYear+"-04-01";
    case '3' : return paraYear+"-07-01";
    case '4' : return paraYear+"-10-01";
  }
}   
   
//获得某季度的结束日期   
function getQuarterEndDate(paraYear,paraSeason){   
  switch (paraSeason){   
  case '1' : return paraYear+"-03-31";
  case '2' : return paraYear+"-06-30";
  case '3' : return paraYear+"-09-30";
  case '4' : return paraYear+"-12-31";
  }  
}

  //获取某年某周的开始日期
function getBeginDateOfWeek(paraYear, weekIndex){
  var firstDay = GetFirstWeekBegDay(paraYear);
  //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
  var time=(weekIndex-1)*7*24*3600000;
  var beginDay = firstDay;
  //为日期对象 date 重新设置成时间 time
  beginDay.setTime(firstDay.valueOf()+time);
  return formatDate(beginDay);
}

  //获取某年某周的结束日期
function getEndDateOfWeek(paraYear, weekIndex){
  var firstDay = GetFirstWeekBegDay(paraYear);
  //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
  var time=(weekIndex-1)*7*24*3600000;
  var weekTime = 6*24*3600000;
  var endDay = firstDay;
  //为日期对象 date 重新设置成时间 time
  endDay.setTime(firstDay.valueOf()+weekTime+time);
  return formatDate(endDay);
}

  //获取日期为某年的第几周
function GetWeekIndex(dateobj) {
  var firstDay = GetFirstWeekBegDay(dateobj.getFullYear());
  if (dateobj < firstDay) {
   firstDay = GetFirstWeekBegDay(dateobj.getFullYear() - 1);
  }
  d = Math.floor((dateobj.valueOf() - firstDay.valueOf()) / 86400000);
  return Math.floor(d / 7) + 1; 
}

  //获取某年的第一天
function GetFirstWeekBegDay(year) {
  var tempdate = new Date(year, 0, 1);
  var temp = tempdate.getDay();
  if (temp == 1){
    return tempdate;
  }
  temp = temp == 0 7 : temp;
  tempdate = tempdate.setDate(tempdate.getDate() + (8 - temp));
  return new Date(tempdate);  
}

js获取某周、某月、下月、某季度的开始日期、结束日期及判断日期第几周的更多相关文章

  1. js获取前几个月的具体日期

    // 往前数monthNum月份,不能往后数monthNum getPreMonthDay("2018-12-28",20) // 往前数monthNum月份,不能往后数month ...

  2. js 获取现在时间一个月(N天)后的日期

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 let today = new Date().getTime() let lastDay = getTimeByDay( ...

  3. JS获取当前日期及 js获取当前时间和一星期前的时间

    var myDate = new Date();     new Date() 代表当前 年 月 日 时 分 秒: myDate.getYear();        //获取当前年份(2位),getY ...

  4. js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

    JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var ...

  5. js获取几个月前,几周前时间。

    /**  *  DK 命名空间  防止全局变量污染  */ var DK = {} ; /**  * 获取前几个月,默认为一个月,当前时间  * @author duke  * @date 格式为yy ...

  6. 用js获取周、月第一天和最后一天(转载)

    var getCurrentWeek = function (day) { var days = ["周日", "周一", "周二", &q ...

  7. js日期计算及快速获取周、月、季度起止日

    var now = new Date(); //当前日期 var nowDayOfWeek = (now.getDay() == 0) ? 7 : now.getDay() - 1; //今天是本周的 ...

  8. js获取上一个月、下一个月格式为yyyy-mm-dd的日期

    /** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ function getPreMonth(date) { var arr = date. ...

  9. C#根据当前时间获取周,月,季度,年度等时间段的起止时间

    最近有个统计分布的需求,需要按统计本周,上周,本月,上月,本季度,上季度,本年度,上年度等时间统计分布趋势,所以这里就涉及到计算周,月,季度,年度等的起止时间了,下面总结一下C#中关于根据当前时间获取 ...

  10. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

随机推荐

  1. openwrt从0开始-目录

    终于下定决心把近期的笔记整理一下.涉及到方方面面,记录自己的成长和沉淀自己所学. 预备知识:linux, 网络通信,待补充... 目录: 前言:openwrt简介 1. openwrt源码下载及编译环 ...

  2. F. Make It Connected

    题目链接:http://codeforces.com/contest/1095/problem/F 题意:给你n个点,每个点有个权值,如果在两点之间添一条边,代价为两点权值之和.现在给出m个边可以选择 ...

  3. msys2-x86_64 Mingw64 编译openssl

    windows 刚开始编译时提示找不到gcc 添加环境变量export PATH=$PATH:/mingw64/bin$source /etc/profile 将openssl源码复制到C:\msys ...

  4. mongoengine中queryset触发网络访问机制剖析

    背景 最近新上线的一个服务,偶尔会有超时告警,其主要逻辑仅仅只是简单的读/写mongodb,而且服务上线初期,流量并不大,因而理论上来说,每次请求都应该很快才对,事实上分析日志也证实90%以上的请求都 ...

  5. 6 线程threading

    1.第1种方式:threading模块 1)单线程执行 #-*- coding:utf-8 -*- import time def main(): print("我错了...") ...

  6. Date 工具类(包含常用的一些时间方法)

    package com.fh.util; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseE ...

  7. OpenCV 3.0.0处理鱼眼镜头信息 - Fisheye camera model

    此篇随笔主要参考OpenCV 3.0.0的官方文档翻译而来,主要用作理解OpenCV对鱼眼相机的标定.图像校正.3D重建功能的理解. 版权所有,转载请注明出处~ xzrch@2018.09.29 参考 ...

  8. 接口测试工具postman(八)上传文件接口

    涉及到选择文件的接口,在[Body]页签下,key选择File选项,会显示“选择文件”按钮,选择本地的文件

  9. GIt学习第二天之版本回退、工作区和暂存区

    搬运自 ‘廖雪峰的官方网站’ 地址:https://www.liaoxuefeng.com/ 1.版本回退 在Git中,我们用git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花 ...

  10. TensorFlow入门之MNIST最佳实践-深度学习

    在上一篇<TensorFlow入门之MNIST样例代码分析>中,我们讲解了如果来用一个三层全连接网络实现手写数字识别.但是在实际运用中我们需要更有效率,更加灵活的代码.在TensorFlo ...