/** * 日期范围工具类 */ var daterangeutil = (function () { /*** * 获得当前时间 */ this.getcurrentdate = function () { return new date(); }; /*** * 获得本周起止时间 */ this. /*** * 获得本月的起止时间 */ this.getcurrentmonth = function () { //起止日期数组 var startstop = new array(); //获取当前时间 var currentdate = this.getcurrentdate(); //获得当前月份0-11 var 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-11 if (month lt; 3) { return spring; } if (month lt; 6) { return summer; } if (month lt; 9) { return fall; } return winter; }; /** * 获得该月的天数 * @param year年份 * @param month月份 * */ this.getmonthdays = function (year, month) { //本月第一天 1-31 var relativedate = new date(year, month, 1); //获得当前月份0-11 var 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-11 var 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--; //年份减1 return new date(year, month, 1); } //否则,只减去月份 month--; return new date(year, month, 1);; }; /** * 获得上一月的起止日期 * ***/ this.getpreviousmonth = function () { //起止日期数组 var startstop = new array(); //获取当前时间 var currentdate = this.getcurrentdate(); //获得当前月份0-11 var 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-11 switch (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-11 var 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; }; return this; })(); /* * 使用: case "本月": $("#startdate").val(daterangeutil.getcurrentmonth()[0].format("yyyy-mm-dd")); $("#enddate").val(daterangeutil.getcurrentmonth()[1].format("yyyy-mm-dd")); break; * */
lt;script type="text/javascript"gt; function showdate(n) { var uom = new date(new date()-0+n*86400000); uom = uom.getfullyear() + "-" + (uom.getmonth()+1) + "-" + uom.getdate(); return uom; } window.alert("今天是:"+showdate(0)); window.alert("昨天是:"+showdate(-1)); window.alert("明天是:"+showdate(1)); window.alert("10天前是:"+showdate(-10)); window.alert("5天后是:"+showdate(5)); lt;/scriptgt;
原文:http://www.cnblogs.com/emanlee/archive/2009/04/05/1429666.html
js-时间函数
原文地址:http://www.cnblogs.com/love-zf/p/6219212.html
热门内容