免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2353 | 回复: 4
打印 上一主题 下一主题

JSP日期算法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-06 17:19 |只看该作者 |倒序浏览
  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 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-06 21:20 |只看该作者

回复 #1 wangjianEgg 的帖子

你这是JSP吗???

论坛徽章:
0
3 [报告]
发表于 2009-05-07 12:52 |只看该作者
原帖由 caojiqun 于 2009-5-6 21:20 发表
你这是JSP吗???



应该是javascript

论坛徽章:
0
4 [报告]
发表于 2009-05-07 13:56 |只看该作者
是js,呵呵,不是java

论坛徽章:
0
5 [报告]
发表于 2009-06-01 15:36 |只看该作者

回复 #1 wangjianEgg 的帖子

javascript
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP