效果:

代码:

 //用于获取日期本周、本月、本季度的js
//Author : guanghe
//文件引用方法:<script src="${staticPath}/common/js/dateUtil.js"></script>
/**
* 获取本周、本季度、本月、上月的开始日期、结束日期
*/
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0; //格式化日期: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(theYear, theMonth) {
var monthStartDate = new Date(theYear, theMonth, 1);
var monthEndDate = new Date(theYear, theMonth + 1, 1);
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
} //获得本季度的开始月份
function getQuarterStartMonth(theMonth) {
if(!theMonth) {
theMonth = nowMonth;
}
var quarterStartMonth = 0;
if (theMonth < 3) {
quarterStartMonth = 0;
}
if (2 < theMonth && theMonth < 6) {
quarterStartMonth = 3;
}
if (5 < theMonth && theMonth < 9) {
quarterStartMonth = 6;
}
if (theMonth > 8) {
quarterStartMonth = 9;
}
return quarterStartMonth;
} //获得本周的开始日期
function ghGetWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
return formatDate(weekStartDate);
}
//获得本周的结束日期
function ghGetWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek) + 1);
return formatDate(weekEndDate);
} //获得下周的开始日期
function ghGetNextWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 7 + 1);
return formatDate(weekStartDate);
} //获得本月的开始日期
function ghGetMonthStartDate() {
var monthStartDate = new Date(nowYear, nowMonth, 1);
return formatDate(monthStartDate);
} //获得本月的结束日期
function ghGetMonthEndDate() {
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowYear, nowMonth));
return formatDate(monthEndDate);
} //获得下月开始时间
function ghGetNextMonthStartDate() {
var theYear = nowYear;
var theMonth = nowMonth + 1;
if(theMonth == 12) {
theYear += 1;
theMonth = 0;
}
var nextMonthStartDate = new Date(theYear, theMonth, 1);
return formatDate(nextMonthStartDate);
} //获得本季度的开始日期
function ghGetQuarterStartDate() {
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
return formatDate(quarterStartDate);
} //或的本季度的结束日期
function ghGetQuarterEndDate() {
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth,
getMonthDays(nowYear, quarterEndMonth));
return formatDate(quarterStartDate);
} function ghGetNextQuarterStartDate() {
var theYear = nowYear;
var theQuarterMonth = nowMonth + 3;
if(theQuarterMonth > 11) {
theYear += 1;
theQuarterMonth -= 12;
}
var quarterStartDate = new Date(theYear, getQuarterStartMonth(theQuarterMonth), 1);
return formatDate(quarterStartDate);
} //设置查询时间
function ghSetDate(areaName, inputName, id) {
var date = $(areaName).children(inputName);
var dateStart = date.eq(0);
var dateEnd = date.eq(1);
switch(id) {
case "cur_week" :
dateStart.val(ghGetWeekStartDate());
dateEnd.val(ghGetNextWeekStartDate());
break;
case "cur_month" :
dateStart.val(ghGetMonthStartDate());
dateEnd.val(ghGetNextMonthStartDate());
break;
case "cur_quarter" :
dateStart.val(ghGetQuarterStartDate());
dateEnd.val(ghGetNextQuarterStartDate());
break;
}
} //初始化时间区域选择控件
// name:时间组件选择器name
function ghInitWidget(name) {
var areaName = "#" + name + "_date";
var inputName = "input[name='" + name + "']";
var str = $("<label id='theLabel' class='control-label'><a id='cur_week'>本周</a>&emsp;<a id='cur_month'>本月</a>&emsp;<a id='cur_quarter'>本季度</a>&emsp;自定义&emsp;</label>");
$(areaName).before(str);
//点击区域按钮,高亮并搜索
$("#theLabel a").click(function() {
$("#theLabel a").css("color", "#337ab7");
$(this).css("color", "red");
ghSetDate(areaName, inputName, this.id);
$(":button.btn-search1").click();
});
//点击日期框,区域选择按钮取消高亮
$(areaName).children(inputName).click(function() {
$("#theLabel a").css("color", "#337ab7");
});
}

JS获取周、月、季度日期的更多相关文章

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

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

  2. 关于JS获取某月最后一天

    发现网上用js获取某月最后一个的方式大多比较复杂,上个简单的: new Date(2013,4).toJSON().substring(0,10) new Date(2013,4,0).toLocal ...

  3. JS获取当前时间和日期

    当前时间和日期 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1 ...

  4. Js获取当前时间、日期

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

  5. JS 获取当前日期的前一天日期(年月日格式)

    var time = (new Date).getTime() - 24 * 60 * 60 * 1000;var yesday = new Date(time); // 获取的是前一天日期yesda ...

  6. JS获取当年当月最后一天日期

    <html xmlns="http://www.w3.org/1999/xhtml" > <meta charset="UTF-8"> ...

  7. js 获取某月第一天和最后一天

    1.获取某月第一天和最后一天日期 function getDateByMonth (timeStamp) { let inDate = new Date(timeStamp) let year = i ...

  8. java获取当前时间的年周月季度等的开始结束时间

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  9. js获取当前时间戳与日期比较

    如何用javascript获取当前时间戳: 复制代码 代码示例: 方法1: var timestamp = date.parse(new date()); 结果:1280977330000 方法2: ...

随机推荐

  1. hdu1272 小希的迷宫【并查集】

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...

  2. ubuntu16.04下安装Eigen

    请输入以下命令进行安装: sudo apt-get install libeigen3-dev 一个库由头文件和库文件组成.Eigen头文件的默认位置在 “usr/include/eigen3” 中. ...

  3. camke中关于变量的一些知识

    一.cmake变量引用的方式: 在cmake中,使用${}进行变量的引用.在IF等语句中,是直接使用变量名而不是通过${}取值 二.cmake自定义变量的方式: 主要有隐式定义和显式定义两种,前面举了 ...

  4. memory addresses

    php.net References in PHP are a means to access the same variable content    by different names. The ...

  5. iOS多线程编程之GCD的常见用法(转载)

    一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) withObject:nil aft ...

  6. Thymeleaf模板引擎的初步使用

    在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...

  7. arcgis server multipoint 服务 applyedit功能

    首先打开arcmap,在catalog中新建 File GDB 在File GDB 中新建 Feature Class 类型选择 Multipoint 选择坐标 此时图层列表中有了新建的要素,点击Ed ...

  8. CF1044B Intersecting Subtrees 构造+树论

    正解:构造 解题报告: 传送门 又是一道交互题!爱了爱了! 这题真的,极妙!非常神仙!就非常非常思维题! 直接说解法了吼 说起来实在是简单鸭 就是先问一个对方的联通块中的一个点在我这儿的编号,记为x ...

  9. 有关线程安全的探讨--final、static、单例、线程安全

    我的代码中已经多次使用了线程,然后还非常喜欢使用据说是线程不安全的静态方法,然后又看到很多地方最容易提的问题就是这个东西线程不安全   于是我不免产生了以下几个亟待解决的问题: 什么样的代码是天生线程 ...

  10. [py]python中的特殊类class type和类的两面性图解

    生活中的模具 生活中 编程 万物都从无到有, 起于烟尘 () 生产原料,铁 object 车床-生产各类模具 元类即metaclass,对应python的class type 模具-生产各类实在的物品 ...