Chinaunix

标题: JSP日期算法 [打印本页]

作者: wangjianEgg    时间: 2009-05-06 17:19
标题: JSP日期算法
  1. var data = "2009-01-01";
  2. var n = Date.parse(data .replace(/-/g,"/"));
  3. var d = new Date(n);
  4. d.getWeekNew();//日期年中的第几周 (以这年开始的第一天开始算)
  5. d.getWeekNew(true);//日期年中的第几周 (以这年开始的第一个星期一开始算)
  6. d.getDataNew();//日期中在这年的第几天
  7. var fe = getFirstAndEnd(d);   
  8. fe.first.format("yyyy-MM-dd");//这周的开始日期
  9. fe.end.format("yyyy-MM-dd");//这周的结束日期

  10. Date.prototype.getWeekNew = function(flag) {   
  11.     var first = new Date(this.getFullYear(),0,1);
  12.     var n = parseInt("1065432".charAt(first.getDay()));   
  13.     n = this.getTime()-first.getTime()-n*24*60*60*1000;   
  14.     n = Math.ceil(n/(7*24*60*60*1000));   
  15.     return (flag==true&&first.getDay()!=1)?(n+1):n;
  16. };

  17. Date.prototype.getDataNew = function() {   
  18.     var first = new Date(this.getFullYear(),0,1);
  19.     var n = parseInt("1065432".charAt(first.getDay()));
  20.     var m = n;
  21.     n = this.getTime()-first.getTime()-n*24*60*60*1000;   
  22.     n = Math.ceil(n/(24*60*60*1000));
  23.     return (n+m+1);
  24. };

  25. Date.prototype.format = function(format) {   
  26.     var o = {   
  27.         "M+" : this.getMonth()+1,//month   
  28.         "d+" : this.getDate(),         //day   
  29.         "h+" : this.getHours(),       //hour   
  30.         "m+" : this.getMinutes(),   //minute   
  31.         "s+" : this.getSeconds(),   //second   
  32.         "q+" : Math.floor((this.getMonth()+3)/3),     //quarter   
  33.         "S" : this.getMilliseconds()   //millisecond   
  34.     }   
  35.     if(/(y+)/.test(format)) format=format.replace(RegExp.$1,   
  36.         (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
  37.     for(var k in o)if(new RegExp("("+ k +")").test(format))   
  38.         format = format.replace(RegExp.$1,   
  39.             RegExp.$1.length==1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));   
  40.     return format;   
  41. };   

  42. function getFirstAndEnd(d) {
  43.     var w = d.getDay(), n = 24*60*60*1000;   
  44.     var first = new Date(d.getTime() - parseInt("6012345".charAt(w))*n);   
  45.     var end = new Date(d.getTime() + parseInt("0654321".charAt(w))*n);   
  46.     return {first: first,end:end};   
  47. }
复制代码


希望以上方法能对新手有点帮助!

[ 本帖最后由 wangjianEgg 于 2009-5-6 17:20 编辑 ]
作者: caojiqun    时间: 2009-05-06 21:20
标题: 回复 #1 wangjianEgg 的帖子
你这是JSP吗???
作者: dream_land    时间: 2009-05-07 12:52
原帖由 caojiqun 于 2009-5-6 21:20 发表
你这是JSP吗???



应该是javascript
作者: hdc1112    时间: 2009-05-07 13:56
是js,呵呵,不是java
作者: hsqsoft    时间: 2009-06-01 15:36
标题: 回复 #1 wangjianEgg 的帖子
javascript




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2