`
zyayyx85141
  • 浏览: 12147 次
文章分类
社区版块
存档分类
最新评论

Javascript对日期的操作

 
阅读更多

详细请点击:http://www.verydemo.com/demo_c98_i60584.html

  javascript对日期处理的常用方法类

<scriptlanguage="JavaScript">
<!--
//程序:常用公历日期处理程序
/**//*用相对不规则的字符串来创建日期对象,不规则的含义为:顺序包含年月日三个数值串,有间隔*/
String.prototype.parseDate=function(){
  varar=(this+",0,0,0").match(/d+/g);
  returnar[5]?(newDate(ar[0],ar[1]-1,ar[2],ar[3],ar[4],ar[5])):(newDate());
}
/**//*
*功能:根据输入表达式返回日期字符串
*参数:dateFmt:字符串,由以下结构组成  
*   yy:长写年,YY:短写年mm:数字月,MM:英文月,dd:日,hh:时,
*   mi:分,ss秒,ms:毫秒,we:汉字星期,WE:英文星期.
*   isFmtWithZero:是否用0进行格式化,trueorfalse
*返回:对应日期的中文字符串
*/
Date.prototype.toString=function(dateFmt,isFmtWithZero){
  dateFmt=(dateFmt==null?"yy-mm-ddhh:mi:ss":dateFmt);
  if(typeof(dateFmt)!="string")
    throw(newError(-1,'toString()方法的第一个参数为字符串类型!'));
  isFmtWithZero=!!isFmtWithZero;
  varweekArr=[["日","一","二","三","四","五","六"],["SUN","MON","TUR","WED","THU","FRI","SAT"]];
  varmonthArr=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];
  varstr=dateFmt;
  varo={
    "yy":this.getFullYear(),
    "YY":this.getYear(),
    "mm":this.getMonth()+1,
    "MM":monthArr[this.getMonth()],
    "dd":this.getDate(),
    "hh":this.getHours(),
    "mi":this.getMinutes(),
    "ss":this.getSeconds(),
    "we":"星期"+weekArr[0][this.getDay()],
    "WE":weekArr[1][this.getDay()]
  }
  for(variino){
    str=str.replace(newRegExp(i,"g"),o[i].toString().fmtWithZero(isFmtWithZero));
  }
  str=str.replace(/ms/g,this.getMilliseconds().toString().fmtWithZeroD(isFmtWithZero));
  returnstr;
}
/**//*将一位数字格式化成两位,如:9to09*/
String.prototype.fmtWithZero=function(isFmtWithZero){  
  return(isFmtWithZero&&/^d$/.test(this))?"0"+this:this;
}
String.prototype.fmtWithZeroD=function(isFmtWithZero){  
  return(isFmtWithZero&&/^d{2}$/.test(this))?"00"+this:((isFmtWithZero&&/^d$/.test(this))?"0"+this:this);
}
/**//*功能:返回与某日期相距N天(N个24小时)的日期
*参数:numnumber类型可以为正负整数或者浮点数,默认为1;
*    type0(秒)or1(天),默认为天
*返回:新的Date对象
*/
Date.prototype.dateAfter=function(num,type){
  num=(num==null?1:num);
  if(typeof(num)!="number")thrownewError(-1,"dateAfterDays(num,type)的num参数为数值类型.");
  type=(type==null?1:type);
  vararr=[1000,86400000];
  returnnewDate(this.valueOf()+num*arr[type]);
}
//判断是否是闰年,返回true或者false
Date.prototype.isLeapYear=function(){
  varyear=this.getFullYear();
  return(0==year%4&&((year%100!=0)||(year%400==0)));
}
//返回该月天数
Date.prototype.getDaysOfMonth=function(){
  return(newDate(this.getFullYear(),this.getMonth()+1,0)).getDate();
}
//日期比较函数,参数date:为Date类型,如this日期晚于参数:1,相等:0早于:-1
Date.prototype.dateCompare=function(date){
  if(typeof(date)!="object"||!(/Date/.test(date.constructor)))
    thrownewError(-1,"dateCompare(date)的date参数为Date类型.");
  vard=this.getTime()-date.getTime();
  returnd>0?1:(d==0?0:-1);
}
/**//*功能:返回两日期之差
*参数:pd PowerDate对象
*  type:返回类别标识.yy:年,mm:月,ww:周,dd:日,hh:小时,mi:分,ss:秒,ms:毫秒
*  intOrFloat:返回整型还是浮点型值0:整型,不等于0:浮点型
*  output:输出提示,如:时间差为#周!
*/
Date.prototype.calDateDistance=function(date,type,intOrFloat,output){
  if(typeof(date)!="object"||!(/Date/.test(date.constructor)))
    thrownewError(-1,"calDateDistance(date,type,intOrFloat)的date参数为Date类型.");
  type=(type==null?'dd':type);
  if(!((newRegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
    thrownewError(-1,"calDateDistance(pd,type,intOrFloat,output)的type参数为非法.");
  variof=(intOrFloat==null?0:intOrFloat);
  varnum=0;
  varo={
    "ww":7*86400000,
    "dd":86400000,
    "hh":3600000,
    "mi":60000,
    "ss":1000,
    "ms":1
  }
  switch(type){
    case"yy":num=this.getFullYear()-date.getFullYear();break;
    case"mm":num=(this.getFullYear()-date.getFullYear())*12+this.getMonth()-date.getMonth();break;
    default:
      varsub=this.valueOf()-date.valueOf();
      if(o[type])
        num=(sub/o[type]).fmtRtnVal(iof);
      break;
  }
  return(output?output.replace(/#/g,""+num+""):num);
}
//返回整数或者两位小数的浮点数
Number.prototype.fmtRtnVal=function(intOrFloat){
  return(intOrFloat==0?Math.floor(this):parseInt(this*100)/100);
}
//根据当前日期所在年和周数返回周日的日期
Date.prototype.RtnByWeekNum=function(weekNum){
  if(typeof(weekNum)!="number")
    thrownewError(-1,"RtnByWeekNum(weekNum)的参数是数字类型.");
  vardate=newDate(this.getFullYear(),0,1);
  varweek=date.getDay();
  week=(week==0?7:week);
  returndate.dateAfter(weekNum*7-week,1);
}
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum=function(){
  vardat=newDate(this.getFullYear(),0,1);
  varweek=dat.getDay();
  week=(week==0?7:week);
  vardays=this.calDateDistance(dat,"dd")+1;
  return((days+6-this.getDay()-7+week)/7);
}
//-->
</script>
<scriptlanguage="JavaScript">
<!--
vardw=document.write;
vardate2="2005-12-30".parseDate();
dw(date2,"<br>");
vardate3="2006-1-10111111".parseDate();
dw(date2.calDateDistance(date3,null,null,"时间差为#天!"));
//alert(newDate(2000,2,-29));
//-->
</script>

分享到:
评论

相关推荐

    js对日期操作

    Date.prototype.Format 日期格式化 Date.prototype.DateAdd 日期计算 Date.prototype.DateDiff 比较日期差 Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart ...

    Javascript 日期对象Date扩展

    Date对象扩展,包括常用中文日期格式解析、加减操作、日期差、周操作和季操作。具体扩展的方法如下: parseCHS--静态方法。解析常用的中文日期并返回日期对象。 add--日期加减操作。[注:此函数在上传时还存在...

    javascript混合函数增加日期

    利用混合函数、原型方式实现获取和计算增加天数的操作

    javascript 日期工具类

    导入js文件 用法 var newDate=DateUtil.Format("yyyy/MM/dd",new Date()); 第一个参数可以根据需要改

    moment轻量级JavaScript库用于日期解析验证操作和格式化

    moment:一个轻量级的JavaScript库用于日期解析、验证、操作和格式化

    JavaScript中日期函数的相关操作知识

    日期函数是我们经常用到的知识点,下面通过本文给大家介绍JavaScript中日期函数的相关操作知识,非常不错,感兴趣的朋友一起学习吧

    JavaScript时间日期操作实例小结【5个示例】

    主要介绍了JavaScript时间日期操作,结合5个具体实例形式分析了javascript针对日期时间的各种常见操作技巧,需要的朋友可以参考下

    轻轻松松学用javascript编程(PDF)

    配图列表 列表 1 说明 1.1 主要的内容 1.2 学习目标 2 了解JavaScript 浏览器上的程序语言 2.1 JavaScript 操作对象的简单介绍-- 属性和方法 2.2 JavaScript 代码的加入 2.2.1 加入...

    482个常用经典javascript源码javascript学习推荐.rar

    一共482个经典的javascript经典案例,对于学习javascript的人来说,可以尝试下载跟着操作,包括常见的按钮事件,标记,表单事件,表单特效,超链接操作,窗口事件,功能特效,时间日期,鼠标特效,数组,文件传输,...

    javascript高级教程.pdf

    11.32 JavaScript 操作层 第12 章 字符串对象 12.33 转 义 字 符 12.34 字符串对象的属性 12.35 字符串对象的方法 第13 章 日期对象 13.36 时间对象的属性 13.37 时间对象的设置 第14 章 数 学 对 象 14.38 math ...

    javascript完全学习手册1 源码

    6.4.4 对属性进行操作 146 第3篇 JavaScript高级编程篇 第7章 正则表达式 151 7.1 正则表达式及其作用 151 7.2 正则表达式参考语法 152 7.2.1 限定符 154 7.2.2 选择匹配符 157 7.2.3 分组组合和反向引用符 158 ...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    91、原生JavaScript实现窗体改变事件resize的操作(兼容所以的浏览器) 92、原生JavaScript用正则清除空格分左右 93、原生JavaScript判断变量是否空值 94、原生JavaScript实现base64解码 95、原生JavaScript实现utf8...

    战胜Javascript必做练习50题

    本书以50个精选的Javascrip:程序实例作为练习,每个例子均有详细的操作步骤,并附有针对性很强的思考题,有助于读者快速巩固和提高自己的Javascript编程水平。  在内容编排上,本书将50个练习按照浏览器相关、...

    javascript的date转化器

    一个javascript的日期转换脚本,能够很方便的操作日期对象

    JavaScript的一些工具函数的封装包括url的参数处理数字字符串日期等相关操作函数

    JavaScript的一些工具函数的封装,包括url的参数处理、数字-字符串-日期等相关操作函数

    JavaScript基础教程第8版

    1.10 编写对JavaScript友好的HTML 10 1.10.1 结构、表现和行为 10 1.10.2 div和span 10 1.10.3 class和id 11 1.11 要使用什么工具 12 第2章 开始 13 2.1 将脚本放在哪里 13 2.2 关于函数 14 2.3 ...

    javascript基础知识PDF

    2.1 JavaScript 操作对象的简单介绍-- 属性和方法 . . . . . . . . 8 2.2 JavaScript 代码的加入 . . . . . . . . . . . . . . 10 2.2.1 加入JavaScript 代码的方式一 . . . . . . . . . . . . . . . . . . . . . . ...

    JavaScript完全自学宝典 源代码

    1.4.html 使用JavaScript对网页中的内容进行验证。 1.5.html HMTL中调用.js文件。 1.6.html 使用“”标记,实现的滚动字幕效果。 1.7.html 使用JavaScript实现简单的字幕滚动。 1.8.html 使用...

    javascript自定义日期比较函数用法示例

    主要介绍了javascript自定义日期比较函数用法,涉及javascript日期相关转换、运算操作技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics