关闭

几个有用的JS(去空、返回两日期之差)

899人阅读 评论(0) 收藏 举报

 

去空
String.prototype.trim = function()
{
 var i,j;
 var str = this.replace(/(^/s*)|(/s*$)/g,'');
    if(str == "") return "";
    for(i=0;i<str.length;i++)
    if(str.charAt(i) != ' ') break;
    if(i >= str.length) return "";
    for(j=str.length-1;j>=0;j--)
    if(str.charAt(j) != ' ') break;
    return str.substring(i,j+1).replace(/(^/s*)|(/s*$)/g,''); 
 /*功能:返回两日期之差
 *    type: 返回类别标识.yy:,mm:,ww:,dd:,hh:小时,mi:,ss:,ms:毫秒
 *    intOrFloat :返回整型还是浮点型值 0:整型,不等于0:浮点型
 *    output : 输出提示,:时间差为#
 *    Example:
 *     var date1=new Date("2006","03","01");
 *     var date2=new Date("2006","04","01");
 *     date2.DateDiff(date1,"dd","0",null)返回值为30
 */  
Date.prototype.DateDiff = function (date,type,intOrFloat,output)
{
 if(typeof(date) != "object" || !(/Date/.test(date.constructor)))
  throw new Error(-1,"calDateDistance(date,type,intOrFloat)date参数为Date类型.");
  type = (type==null?'dd':type);
 if(!((new RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
  throw new Error(-1,"calDateDistance(pd,type,intOrFloat,output)type参数为非法.");
 var iof = (intOrFloat==null?0:intOrFloat);
 var num=0;
 var o =
 {
  "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:
  var sub = this.valueOf() - date.valueOf();
  if (o[type])
  num = (sub/o[type]).fmtRtnVal(iof);
  break;
 }
 return (output ? output.replace(/#/g," "+num+" ") : num);
}
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:318000次
    • 积分:4290
    • 等级:
    • 排名:第7312名
    • 原创:120篇
    • 转载:77篇
    • 译文:0篇
    • 评论:31条
    最新评论