1. 程式人生 > >獲取(js)本週週一 週日日期、本季度、本月、上月的開端日期、停止日期(轉帖)...

獲取(js)本週週一 週日日期、本季度、本月、上月的開端日期、停止日期(轉帖)...

轉帖地址:http://blog.csdn.net/kongjiea/article/details/46829023

1、首先來一個自己公司專案的原始碼:

專案需求描述: 從20150712日開始, ,

需求①:根據當前時間返回每一週 、週一~週日的日期(需返回2種格式 格式1:7月13日,格式2:2015-07-13)

需求②:返回當前時間本週的,週一早上9:00:00和週日的23:59:59

需求③:計算出當前時間離20150712日有多少周

需求④:在需求3基礎上,如果大於一週,需要返回歷史周的週一早上9:00:00和週日的23:59:59  (在此用二位陣列)

[html] view plain copy  print
?
  1. function GetWeekDate(time){  
  2.     var now = new Date(time); //當前日期   
  3.     this.nowDayOfWeek = now.getDay(); //今天本週的第幾天  
  4.     this.nowYear = now.getYear(); //當前年   
  5.     this.nowMonth = now.getMonth(); //月   
  6.     this.nowDay = now.getDate(); //日   
  7.     this.beginHour="09:00:00";  
  8.     this.endHour="23:59:59";  
  9.     this.nowYear += (this.nowYear <
    2000) ? 1900 : 0; //  
  10.     this.nowDayOfWeek = this.nowDayOfWeek==0?7:this.nowDayOfWeek; // 如果是週日,就變成周七  
  11. }  
  12. GetWeekDate.prototype.date2str=function(x,y){//date2str(new Date(curTime),"yyyy-MM-dd")  
  13.     var z ={y:x.getFullYear(),M:x.getMonth()+1,d:x.getDate(),h:x.getHours(),m:x.getMinutes(),s:x.getSeconds()};    
  14.     return y.replace(/(y+|M+|d+|h+|m+|s+)/g,function(v) {return ((v.length>1?"0":"")+eval('z.'+v.slice(-1))).slice(-(v.length>2?v.length:2))});    
  15. }  
  16. GetWeekDate.prototype.formatDate=function(date){//格局化日期:yyyy-MM-dd   
  17.     var myyear = date.getFullYear();   
  18.     var mymonth = date.getMonth()+1;   
  19.     var myweekday = date.getDate();  
  20.     //alert("formatDate"+myyear+":"+mymonth+":"+myweekday)  
  21.     if(mymonth <10){   
  22.         mymonth = "0" + mymonth;   
  23.     }   
  24.     if(myweekday <10){   
  25.         myweekday = "0" + myweekday;   
  26.     }   
  27.     return (myyear+"-"+mymonth + "-" + myweekday);   
  28. }  
  29. GetWeekDate.prototype.getWeekStartDate=function(){ //獲得本週的開端日期  
  30.     var weekStartDate = new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek+1);  
  31.     return this.formatDate(weekStartDate);   
  32. }  
  33. GetWeekDate.prototype.getWeekEndDate=function(){//獲得本週的停止日期  
  34.     var weekEndDate = new Date(this.nowYear, this.nowMonth, this.nowDay + (6 - this.nowDayOfWeek+1));  
  35.     return this.formatDate(weekEndDate);   
  36. }  
  37. GetWeekDate.prototype.getAWeedkYMD=function(){//獲得本週週一~週日的年月日  
  38.     var ymdArr=[];  
  39.     for (var i = 0; i <7; i++) {  
  40.         ymdArr[i]=[];  
  41.         //ymdArr[i][0]=this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek+i+1));  
  42.         ymdArr[i][0]=this.date2str(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek+i+1),'yyyy-MM-dd');  
  43.         ymdArr[i][1]=this.date2str(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek+i+1), 'MM月dd日');  
  44.     };  
  45.     return ymdArr;  
  46. }  
  47. GetWeekDate.prototype.getQishu=function(time){//獲得本週是指定日期(7.12日)的第幾周  
  48.     var oNDate=new Date(time); //系統當前時間  
  49.     var oEDate=new Date('2015/7/12 23:59:59');  
  50.     var diffoNDate.getTime()-oEDate.getTime();  
  51.     //console.log(diff)  
  52.     //console.log("相差天:"+diff/(24*60*60*1000))  
  53.     //console.log("相差期數:"+parseInt(diff/(24*60*60*1000))/7)  
  54.     //console.log("取整期數:"+Math.floor(parseInt(diff/(24*60*60*1000))/7))  
  55.     return (diff/(24*60*60*1000))/7;  
  56. }  
  57. GetWeekDate.prototype.getWeeksDates=function(time){//獲取歷史周排行的週一到週日時間段  
  58.     var qishu = (this.qishu || this.qishu==0)?this.qishu:this.getQishu(time);  
  59.     //var qishu=this.getQishu(time);  
  60.     var WeeksTimes=[];//存放時間的二維陣列  
  61.         minYear=2015,  
  62.         minMonth=7,  
  63.         minDay=12;  
  64.     for (var i = 0; i<qishu; i++) {  
  65.         var sday;  
  66.         var eday;  
  67.         WeeksTimes[i]=[];  
  68.         if(i==0){//如果離2015-07-12只相差1期  
  69.             sday=minDay+1; //開始時間+1天  
  70.         }else{//如果離2015-07-12相差期數>1  
  71.             sday=minDay+1+7*i;  
  72.         }  
  73.         eday=minDay+7*(i+1);//結束時間+7天  
  74.         WeeksTimes[i][0]=this.formatDate(new Date(minYear,minMonth-1,sday))+" "+this.beginHour;  
  75.         WeeksTimes[i][1]=this.formatDate(new Date(minYear,minMonth-1,eday))+" "+this.endHour;  
  76.     };  
  77.     //如果是一週的週日就不要減去一期  
  78.     return WeeksTimes;  
  79. }  
  80. GetWeekDate.prototype.todayData=function(json){//處理tender_list_week.jsp頁面  
  81.     var oQishu=$('.qishu');  
  82.         iQishu=this.qishu;//期數+1是因為,相差0期就是第1期  
  83.         oThisWeekListBtn=$('.total_list_btn'),//檢視本週排行榜按鈕  
  84.         sTime=this.getWeekStartDate()+" "+this.beginHour,  
  85.         eTime=this.getWeekEndDate()+" "+this.endHour;  
  86.     //1、修改期數  
  87.         //console.log("相差周:"+iQishu);  
  88.     if(/^[1-9]\d*$/.test(iQishu) || iQishu==0){//整數 +3  
  89.         oQishu.html(iQishu*1+3);   
  90.     }else{  
  91.         oQishu.html(Math.floor(iQishu)*1+4);  
  92.     }  
  93.     oThisWeekListBtn.attr("onclick","showWeekList('"+sTime+"','"+eTime+"')");//2、修改檢視本週排行榜的起止時間  
  94. }  
  95. GetWeekDate.prototype.historyData=function(time){//處理tender_list_week.jsp頁面  
  96.     var oQishu=$('.qishu'),  
  97.         oDateList=$('#dateList'), //頂部導航時間  
  98.         oHistoryList=$('#history_cont'),//歷史周  
  99.         aThisWeekYMD=this.getAWeedkYMD(),//本週週一~週日的年月日  
  100.         aThisWeekDates=this.getWeeksDates(time);//獲取歷史周排行的週一到週日時間段  
  101.         iQishu=this.qishu;  
  102.         //console.log("相差周:"+iQishu);  
  103.     //1、修改期數,+4是加上前3期,在+1是如果間隔3期,當前就是第4期  
  104.         //如果時間23:59:59是正整數(-1),如果是0整數(3),如果是非整數(向下取整),或負數(向上取整)但是負數不考慮  
  105.     //oQishu.html(iQishu*1+3);  
  106.     if(/^[1-9]\d*$/.test(iQishu) || iQishu==0){//整數 +3  
  107.         oQishu.html(iQishu*1+3);   
  108.     }else{  
  109.         oQishu.html(Math.floor(iQishu)*1+4);  
  110.     }  
  111.     //2、給頂部時間追加時間  
  112.     for (var i = 0; i <aThisWeekYMD.length; i++) {  
  113.         var str='<li data-time="'+aThisWeekYMD[i][0]+'">'+aThisWeekYMD[i][1]+'</li>';  
  114.         $(str).appendTo(oDateList);  
  115.     };  
  116.     //3、給歷史周排行榜新增週期數  
  117.     if(this.qishu>1){//如果相差的期數大於1期  
  118.         //console.dir(aThisWeekDates)  
  119.         for (var j = 0; j <aThisWeekDates.length-1; j++) {  
  120.             var iQiNum=j+4;  
  121.             var str='<li onclick="showWeekList(\''+aThisWeekDates[j][0]+'\',\''+aThisWeekDates[j][1]+'\')">第'+iQiNum+'期</li>';  
  122.             $(str).prependTo(oHistoryList);  
  123.         };  
  124.     }  
  125. }  
  126. GetWeekDate.prototype.init=function(time){  
  127.     var iQishu=this.getQishu(time),//期數+1是因為,相差0期就是第1期  
  128.         json={};  
  129.     json.qishu=iQishu;  
  130.     this.qishu=iQishu;  
  131.     if($('#pageType').val()=="today"){//如果是tender_list_week.jsp頁面  
  132.         if(new Date(time).getTime() <new

    相關推薦

    獲取(js)本週週一 週日日期季度本月上月開端日期停止日期()...

    轉帖地址:http://blog.csdn.net/kongjiea/article/details/46829023 1、首先來一個自己公司專案的原始碼: 專案需求描述: 從20150712日開始, , 需求①:根據當前時間返回每一週 、週一~週日的日期(需返回2種格式 格式1:7月13日,格式2:201

    JS獲取本週週一 週日日期季度本月上月開端日期停止日期

    1、首先來一個自己公司專案的原始碼: 專案需求描述: 從20150712日開始, , 需求①:根據當前時間返回每一週 、週一~週日的日期(需返回2種格式 格式1:7月13日,格式2:2015-07-13) 需求②:返回當前時間本週的,週一早上9:00:00和週日的23:59

    JS獲取本週季度本月上月本年的開始日期結束日期

    /** * 獲取本週、本季度、本月、上月的開始日期、結束日期 */ var now = new Date(); //當前日期  var nowDayOfWeek = now.getDay(); //今天本週的第幾天  var nowDay = now.getDate(); //當

    JS日期轉換格式 和 JS 獲取 今日昨日本週本月季度本年上月上週季度去年

    // 對Date的擴充套件,將 Date 轉化為指定格式的String // 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個佔位符, // 年(y)可以用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3 位的數字) // 例子: // (new D

    JS獲取本週季度本月上月開端日期停止日期

    var getdate=function(){ var now = new Date(); //當前日期 var nowDayOfWeek = now.getDay(); //今天本週的第幾天 var nowDay = now.getDate();

    JS 獲取 本週本月季度本年上月上週季度去年

    /** * 日期範圍工具類 */ var dateRangeUtil = (function () { /*** * 獲得當前時間 */ this.getCurrentDate = function () { return ne

    獲取本週季度本月上月開端日期停止日期 當前日期

    第一種方式 Date.prototype.Format = function (fmt) {       var o = {         "M+": this.getMonth() + 1, //月份          "d+": this.getDate(), //日

    php 獲取時間(今天,昨天,三天內,本週,上週,本月,三年內,半年內,一年內,三年內) PHP獲取上週本週上月本月季度季度時間方法大全

    <?php date_default_timezone_set('PRC'); /** * 獲取最近一週,一個月,一年 * */ function getLatelyTime($type = ''){ $now = time(); $result = []; if

    PHP獲取昨天今天上週本週上月本月季度季度今年的起始時間

    //今天開始時間 $beginToday= date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d'),date('Y'))); //今天結束時間 $endToday= date("Y-m-d H:

    PHP獲取上週本週上月本月季度季度時間方法大全

    <?php echo date("Ymd",strtotime("now")), "\n"; echo date("Ymd",strtotime("-1 week Monday")), "\n"; echo date("Ymd",strtoti

    oracle獲取本週本月季度年度的第一天和最後一天

    --本週select  trunc(sysdate,'d')+1 from dual;--下週一select  trunc(sysdate,'d')+7from dual; --本月select trunc(sysdate,'mm') from dual;select  last_day(trunc(sy

    Java獲取當天本週本月季度本年等 開始及結束時間

    package com.zhaochao.utils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DataUill { public static

    PHP獲取上周上月本月季度季度時間

    rto time mon body eas sta weekday 天數 echo echo date("Y-m-d",strtotime("now")); echo "<br>"; echo date("Y-m-d",strtotime("-1 wee

    Java獲取當天本月季度本年等 開始及結束時間

    tps 結束 sdf gettime util imp public net ast package com.zhaochao.utils; import java.text.SimpleDateFormat; import java.util.Calenda

    mysql 查詢當天周,本月,上一個月的數據

    sql size 表名 BE 上年 時間 unix select 上一個 今天 select * from 表名 where to_days(時間字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NO

    mysql 查詢當天周,本月,上一個月的數據---https://www.cnblogs.com/benefitworld/p/5832897.html

    今天 from OS alt AS span cnblogs itl val mysql 查詢當天、本周,本月,上一個月的數據 今天 select * from 表名 where to_days(時間字段名) = to_days(now()); 昨天 SELEC

    js獲取某周某月下月季度的開始日期結束日期及判斷日期第幾周

    weekend return n) nth 結束時間 value rst 獲得 set //格式化日期:yyyy-MM-dd   function formatDate(date) {      var myyear = date.getFullYear();     v

    c#獲取當前時間的本週本月本年的開始和結束時間

    using System; public enum DataTimeType { Week, Month, Season, Year } public class DataTimeManager { /// <summary> ///

    shell指令碼獲取昨天今天本週週一本週週日本月第一天本月最後一天

    偶爾在linux上需要做指令碼,並設定指令碼按照日期來計算相關資料,這時候就涉及到日期的獲取,這裡介紹簡單的幾個重要日期的獲取,分別是昨天,今天是本週的第幾天,本週週一,本週週日,本月第一天,本月最後一天。 指令碼獲取日期並格式化,思路都是相同的,首先獲取日期,然後給出格式化表示式。 昨

    Oracle 獲取本週本月本年的第一天和最後一天(

    --本週 select trunc(sysdate, 'd') + 1 from dual; select trunc(sysdate, 'd') + 7 from dual; --本月 select trunc(sysdate, 'mm') from dual; sele