[转] Js获取 本周、本月、本季度、本年、上月、上周、上季度、去年时间段
/** * 针对时间的工具类 */
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获取 本周、本月、本季度、本年、上月、上周、上季度、去年时间段相关推荐
- js获取本周的周一、周日和上周的周一、周日
1.js获取本周的周一.周日和上周的周一.周日 var now =new Date(); var nowTime =now.getTime(); var day =now.getDay(); var ...
- moment 取年月日_moment.js获取本周本月本年的开始日期和结束日期
//获取本日 const startDate = moment().format('YYYY-MM-DD'); const startDate = moment().format('YYYY-MM-D ...
- 获取 本周本月本季度本年开始时间和结束时间
获取 本周本月本季度本年开始时间和结束时间 转载连接:https://blog.csdn.net/Augus3344/article/details/51015704
- java 本年第一个月_JAVA获取本周 本月 本年 第一天和最后一天
JAVA获取本周 本月 本年 第一天和最后一天 /** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ pub ...
- java,js获取本周和下周开始结束日期
额,本人第一次下博文,先写一篇看看咋写. 文章目录 前言 一.java下获取本周开始结束日期以及根据某个日期获取本周开始结束日期 二.js获取本周或下周日期 总结 前言 前几天开发时用到了一些获取本周 ...
- oracle sql获取本季度,oracle sql 获取本季度所有月份,上季度所有月份
上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...
- js获取本周、本月、本季、本年的第一天
今天项目中要获取本周.本月.本季.本年的第一天,发现网上的方法或多或少都有问题,于是自己写了一个,亲测可用. 同时回顾了一下js日期对象的知识,做个总结 先上代码: 1 /** 2 * 获取指定日期的 ...
- JS获取本周、本季度、本月、上月的开端日期、停止日期
Js代码 /** * 获取本周.本季度.本月.上月的开端日期.停止日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); ...
- js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
/** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天 ...
- JS获取本周、本季度、本月、上月的开始日期、结束日期
/** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = ...
最新文章
- linux下多线程实现服务端
- IntelliJ IDEA 不能识别 Java 项目
- nodejs 利用zip-local模块压缩文件夹
- 利用python爬取房价
- 尾气冒黑烟是什么问题_烟囱里冒得白烟、黑烟、黄烟有什么危害?
- [sqlite] android create db in SD card
- 【转】sql server 订阅发布、快照发布(一)
- 【渝粤教育】广东开放大学 跨文化商务沟通 形成性考核 (39)
- 安卓rom制作教程_【ROM消息】Simplicity官改:MIUI11 9.12.14全机型更新
- java xps文档_使用Java 将PPT转换为PDF、XPS等格式
- 神经元在人体内如何分布,人体神经元怎么分布的
- python 判断数字是奇数还是偶数
- 前端预言 未来前端的发展方向
- 【SqlServer】错误 0xc00470fe: 数据流任务: 产品级别对于 组件“源 - TestDB01$”(1) 而言不足
- springfox接口文档如何关闭
- 强势推出的超拽个性签名档:如果你是一朵花,那牛都不拉粪了
- 100、网页端的人脸识别
- 移动端KISSY学习
- kettle Spoon.bat闪退解决办法
- 经验分享帖 基于STM32的超声波测距HC-SR04(附程序)
热门文章
- simpleperf 使用记录
- python中open打开路径问题_Python学习笔记之open()函数打开文件路径报错问题
- 自旋锁spin_lock
- Linux kernel路由机制分析(上)
- android app唯一标识符,android 唯一识别码笔记
- 如何分析个股基本面_个股分析报告要分析哪些方面?股票基本面分析实例
- c++派生类构造顺序
- cocos2d-x 3.0对label的改进
- 二分图的最大匹配--匈牙利算法
- php项目部署到linux服务器,thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决...