JS获取周、月、季度日期
效果:
代码:
//用于获取日期本周、本月、本季度的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> <a id='cur_month'>本月</a> <a id='cur_quarter'>本季度</a> 自定义 </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获取周、月、季度日期的更多相关文章
- 用js获取周、月第一天和最后一天(转载)
var getCurrentWeek = function (day) { var days = ["周日", "周一", "周二", &q ...
- 关于JS获取某月最后一天
发现网上用js获取某月最后一个的方式大多比较复杂,上个简单的: new Date(2013,4).toJSON().substring(0,10) new Date(2013,4,0).toLocal ...
- JS获取当前时间和日期
当前时间和日期 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1 ...
- Js获取当前时间、日期
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1 ...
- JS 获取当前日期的前一天日期(年月日格式)
var time = (new Date).getTime() - 24 * 60 * 60 * 1000;var yesday = new Date(time); // 获取的是前一天日期yesda ...
- JS获取当年当月最后一天日期
<html xmlns="http://www.w3.org/1999/xhtml" > <meta charset="UTF-8"> ...
- js 获取某月第一天和最后一天
1.获取某月第一天和最后一天日期 function getDateByMonth (timeStamp) { let inDate = new Date(timeStamp) let year = i ...
- java获取当前时间的年周月季度等的开始结束时间
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- js获取当前时间戳与日期比较
如何用javascript获取当前时间戳: 复制代码 代码示例: 方法1: var timestamp = date.parse(new date()); 结果:1280977330000 方法2: ...
随机推荐
- hdu1272 小希的迷宫【并查集】
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...
- ubuntu16.04下安装Eigen
请输入以下命令进行安装: sudo apt-get install libeigen3-dev 一个库由头文件和库文件组成.Eigen头文件的默认位置在 “usr/include/eigen3” 中. ...
- camke中关于变量的一些知识
一.cmake变量引用的方式: 在cmake中,使用${}进行变量的引用.在IF等语句中,是直接使用变量名而不是通过${}取值 二.cmake自定义变量的方式: 主要有隐式定义和显式定义两种,前面举了 ...
- memory addresses
php.net References in PHP are a means to access the same variable content by different names. The ...
- iOS多线程编程之GCD的常见用法(转载)
一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) withObject:nil aft ...
- Thymeleaf模板引擎的初步使用
在springboot中,推荐使用的模板引擎是Thymeleaf模板引擎,它提供了完美的Spring MVC的支持.下面就简单的介绍一下Thymeleaf模板引擎的使用. 在controller层中, ...
- arcgis server multipoint 服务 applyedit功能
首先打开arcmap,在catalog中新建 File GDB 在File GDB 中新建 Feature Class 类型选择 Multipoint 选择坐标 此时图层列表中有了新建的要素,点击Ed ...
- CF1044B Intersecting Subtrees 构造+树论
正解:构造 解题报告: 传送门 又是一道交互题!爱了爱了! 这题真的,极妙!非常神仙!就非常非常思维题! 直接说解法了吼 说起来实在是简单鸭 就是先问一个对方的联通块中的一个点在我这儿的编号,记为x ...
- 有关线程安全的探讨--final、static、单例、线程安全
我的代码中已经多次使用了线程,然后还非常喜欢使用据说是线程不安全的静态方法,然后又看到很多地方最容易提的问题就是这个东西线程不安全 于是我不免产生了以下几个亟待解决的问题: 什么样的代码是天生线程 ...
- [py]python中的特殊类class type和类的两面性图解
生活中的模具 生活中 编程 万物都从无到有, 起于烟尘 () 生产原料,铁 object 车床-生产各类模具 元类即metaclass,对应python的class type 模具-生产各类实在的物品 ...