一些针对时间处理的个人记录

本文介绍了一个用于处理报表中各种时间查询条件的JavaScript函数集。包括根据年份、季度、月份和具体日期设置起止时间的功能,并提供了计算周起始与结束日期的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//统计报表里面对于时间的处理
function reportBeforesubmit(o){
 var t = $("#"+o.searchFormId).find("input#timetype").val();
 if(!t){
  var th = $("#tabs_headerId").find("li.reportforms_tabs_selected");
  var index = $("#tabs_headerId").find("li").index(th);
  t = index+1;
  o.otherParams = o.otherParams+"&timetype="+t;
 }
 var year = $("#"+o.searchFormId).find("select#drpyear").val();
 var quarter = $("#"+o.searchFormId).find("select#drpquarter").val();
 var month = $("#"+o.searchFormId).find("select#drpmoth").val();
 var starttimefalse = $("#"+o.searchFormId).find("input[name=starttimefalse]").val();
 var endtimefalse = $("#"+o.searchFormId).find("input[name=endtimefalse]").val();
 var weekdate = $("#"+o.searchFormId).find("input[name=weekdate]").val();
 var week = $("#"+o.searchFormId).find("input[name=week]").val();
 var weekyear = $("#"+o.searchFormId).find("input[name=weekyear]").val();
 
 var starttime;
 var endtime;
 
 var time1;
 var time2;
 if((parseInt(t) < 4&&year=="-1")){
  alert("请输入时间查询条件");
  return false;
 }else if(parseInt(t)==4 && !weekdate){
  alert("请输入时间查询条件");
  return false;
 }else if(parseInt(t)==5&&(!starttimefalse&&!endtimefalse)){
  alert("请输入时间查询条件");
  return false;
 }
 
 
 if(t=="1"){
   time1 = year+"-01-01 00:00:00";
   time2 = year+"-12-31 23:59:59";
  
 }
 if(t=="2"){
  
  if(quarter=="1"){
   time1 = year+"-01-01 00:00:00";
   time2 = year+"-03-31 23:59:59";
  }
  if(quarter=="2"){
   time1 = year+"-04-01 00:00:00";
   time2 = year+"-06-30 23:59:59";
  }
  if(quarter=="3"){
   time1 = year+"-07-01 00:00:00";
   time2 = year+"-09-30 23:59:59";
  }
  if(quarter=="4"){
   time1 = year+"-10-01 00:00:00";
   time2 = year+"-12-31 23:59:59";
  }
  
 }
 if(t=="3"){
  var myDate=new Date();
  myDate.setFullYear(year,month,1);
  myDate.addDays(-1);
  var date = myDate.getDate();
   time1 = year+"-"+month+"-01 00:00:00";
   time2 = year+"-"+month+"-"+date + " 23:59:59";
 }
 if(t=="4"){
  time1 = getweekstart(weekdate) + " 00:00:00";
  time2 = getweekend(weekdate) + " 23:59:59";
  year = weekyear;
 }
 if(t=="5"){
   time1 = starttimefalse + " 00:00:00";
   time2 = endtimefalse + " 23:59:59";
 }
 
 
 starttime = date2utc(time1);
 endtime = date2utc(time2);
 
 $("#"+o.searchFormId).find("select#drpyear").attr("value",year);
 $("#"+o.searchFormId).find("input[name=starttime]").val(starttime);
 $("#"+o.searchFormId).find("input[name=endtime]").val(endtime);
 
 if(starttime&&endtime){
  return true;
 }else{
  alert("请选择查询条件");
  return false;
 }
}
//统计报表月报表时间处理
function reportBeforesubmitMonth(o){
 debugger;
 var year = $("#operatorcheckqueryfrom").find("input[name=startdate]").val().substr(0,4);
 var month = $("#operatorcheckqueryfrom").find("input[name=startdate]").val().substr(5,7);
 var starttime;
 var endtime;
 var time1;
 var time2;
 
 var myDate=new Date();
 myDate.setFullYear(year,month,1);
 myDate.addDays(-1);
 var date = myDate.getDate();
 time1 = year+"-"+month+"-01 00:00:00";
 time2 = year+"-"+month+"-"+date + " 23:59:59";
 
 starttime = date2utc(time1);
 endtime = date2utc(time2);
 
 $("#"+o.searchFormId).find("input[name=starttime]").val(starttime);//需改input
 $("#"+o.searchFormId).find("input[name=endtime]").val(endtime);

}
//统计报表里面对于时间的处理 另外一种年月日类型的
function reportBeforesubmitDay(o){
 var t = $("#"+o.searchFormId).find("span#timetype").val();
 if(!t){
  var th = $("#tabs_headerId").find("li.reportforms_tabs_selected");
  var index = $("#tabs_headerId").find("li").index(th);
  t = index+1;
  o.otherParams = o.otherParams+"&timetype="+t;
 }
 var year = $("#"+o.searchFormId).find("select#drpyear").val();
 var quarter = $("#"+o.searchFormId).find("select#drpquarter").val();
 var starttimefalse = $("#"+o.searchFormId).find("input[name=day]").val();
 var endtimefalse = $("#"+o.searchFormId).find("input[name=day]").val();

 var starttime;
 var endtime;
 
 var time1;
 var time2;
 
 if((parseInt(t) < 3&&year=="-1")){
  alert("请输入时间查询条件");
  return false;
 }else if(parseInt(t)==3&&(!starttimefalse&&!endtimefalse)){
  alert("请输入时间查询条件");
  return false;
 }
 if(t=="1"){
   time1 = year+"-01-01";
   time2 = year+"-12-31";
  
 }
 if(t=="2"){
  var myDate=new Date();
  myDate.setFullYear(year,quarter,1);
  myDate.addDays(-1);
  var date = myDate.getDate();
   time1 = year+"-"+quarter+"-01";
   time2 = year+"-"+quarter+"-"+date;
 }
 if(t=="3"){
   time1 = starttimefalse;
   time2 = endtimefalse;
 }
 starttime = date2utcBegin(time1);
 endtime = date2utcEnd(time2);
 
 $("#"+o.searchFormId).find("input[name=starttime]").val(starttime);
 $("#"+o.searchFormId).find("input[name=endtime]").val(endtime);
 
 if(starttime&&endtime){
  return true;
 }else{
  alert("请选择查询条件");
  return false;
 }
}

 

/**
 * 统计报表中
 * 计算本周第一天
 * @returns {String}
 */
getweekstart = function(date){
 var dateD = new Date();
 dateD = str2date(date);
 
 var myyear = dateD.getFullYear();    
    var mymonth = dateD.getMonth();    
    var myday = dateD.getDate();
    var nowDayOfWeek = dateD.getDay();
    if(0==nowDayOfWeek){
     nowDayOfWeek = 7;
    }
    var weekStartDate = new Date(myyear, mymonth, myday - nowDayOfWeek+1); 
    var weekStart = weekStartDate.Format("yyyy-MM-dd");
    return weekStart;
};
/**
 * 统计报表中
 * 计算本周最后一天
 * @returns {String}
 */
getweekend = function(date){
 var dateD = new Date();
 dateD = str2date(date);
 
 var myyear = dateD.getFullYear();    
    var mymonth = dateD.getMonth();    
    var myday = dateD.getDate();
    var nowDayOfWeek = dateD.getDay();
    if(0==nowDayOfWeek){
     nowDayOfWeek = 7;
    }
    var weekEndDate = new Date(myyear, mymonth, myday + (6 - nowDayOfWeek+1));
    var weekEnd = weekEndDate.Format("yyyy-MM-dd");
    return weekEnd;
};

getpreweekstart = function() {
 var dateD = new Date();
 
 var myyear = dateD.getFullYear();    
    var mymonth = dateD.getMonth();    
    var myday = dateD.getDate();
    var nowDayOfWeek = dateD.getDay();
    if(0==nowDayOfWeek){
     nowDayOfWeek = 7;
    }
    var weekStartDate = new Date(myyear, mymonth, myday - nowDayOfWeek-6); 
    var weekStart = weekStartDate.Format("yyyy-MM-dd");
    return weekStart;
};
getpreweekend = function() {
 var dateD = new Date();
 
 var myyear = dateD.getFullYear();    
    var mymonth = dateD.getMonth();    
    var myday = dateD.getDate();
    var nowDayOfWeek = dateD.getDay();
    if(0==nowDayOfWeek){
     nowDayOfWeek = 7;
    }
    var weekEndDate = new Date(myyear, mymonth, myday + (6 - nowDayOfWeek-6));
    var weekEnd = weekEndDate.Format("yyyy-MM-dd");
    return weekEnd;
};

/**
 * 查询监管中
 * 计算开始结束时间间隔天数 不满一天 算一天
 * @returns {String}
 */
getdaysquery = function(startDate,endDate){
 var cha = (Date.parse(startDate.replace("-", "/")) - Date.parse(endDate.replace("-", "/")));
 var chah = Math.abs(cha)/86400000;
 var totalday = Math.floor(chah)+1;
 return totalday;
};


/*
 * *****************************************************日期扩展
 */
Date.prototype.toCommonCase = function() {
 var xYear = this.getYear();
 xYear = xYear + 1900;
 var xMonth = this.getMonth() + 1;
 if (xMonth < 10) {
  xMonth = "0" + xMonth;
 }
 var xDay = this.getDate();
 if (xDay < 10) {
  xDay = "0" + xDay;
 }
 var xHours = this.getHours();
 if (xHours < 10) {
  xHours = "0" + xHours;
 }
 var xMinutes = this.getMinutes();
 if (xMinutes < 10) {
  xMinutes = "0" + xMinutes;
 }
 var xSeconds = this.getSeconds();
 if (xSeconds < 10) {
  xSeconds = "0" + xSeconds;
 }
 return xYear + "-" + xMonth + "-" + xDay + " " + xHours + ":" + xMinutes
   + ":" + xSeconds;
};
Date.prototype.toCommon2Case = function() {
 var xYear = this.getFullYear();
 var xMonth = this.getMonth() + 1;
 if (xMonth < 10) {
  xMonth = "0" + xMonth;
 }
 var xDay = this.getDate();
 if (xDay < 10) {
  xDay = "0" + xDay;
 }
 return xYear + "-" + xMonth + "-" + xDay;
};
Date.prototype.Format = function(fmt) {
 // author: meizz
 var o = {
  "M+" : this.getMonth() + 1, // 月份
  "d+" : this.getDate(), // 日
  "h+" : this.getHours(), // 小时
  "m+" : this.getMinutes(), // 分
  "s+" : this.getSeconds(), // 秒
  "q+" : Math.floor((this.getMonth() + 3) / 3), // 季度
  "S" : this.getMilliseconds()
 // 毫秒
 };
 if (/(y+)/.test(fmt))
  fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
    .substr(4 - RegExp.$1.length));
 for ( var k in o)
  if (new RegExp("(" + k + ")").test(fmt))
   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
     : (("00" + o[k]).substr(("" + o[k]).length)));
 return fmt;
};

Date.prototype.addDays = function(d) {
 this.setDate(this.getDate() + d);
};

Date.prototype.addWeeks = function(w) {
 this.addDays(w * 7);
};

Date.prototype.addMonths = function(m) {
 var d = this.getDate();
 this.setMonth(this.getMonth() + m);

 if (this.getDate() < d)
  this.setDate(0);
};

Date.prototype.addYears = function(y) {
 var m = this.getMonth();
 this.setFullYear(this.getFullYear() + y);

 if (m < this.getMonth()) {
  this.setDate(0);
 }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值