当前位置: 代码迷 >> JavaScript >> 惯用的js,字符截取,时间转换
  详细解决方案

惯用的js,字符截取,时间转换

热度:136   发布时间:2012-10-30 16:13:36.0
常用的js,字符截取,时间转换
/**
 * 字符串长度截取
 * @param str
 * @param length  要截取的长度
 * @return
 */
function getSubString(str,length){
    var subStr ="";
    if(str.length > length){
    	subStr = str.substring(0,length)+"...";
      }else{
    	subStr= str;
    }
     return subStr;     
 }
/**
 * 控制文章的显示,以中文为基础
 * s 待处理的字符串
 * l 截取的长度
 * d 是否出现“...”,默认出现
 */
function subStr(s,l,d){
	if(s == undefined){
		return "";
	}
	s=s.replaceAll(" ","|");
	l=l*2;
	var r = /[^\x00-\xff]/g;
	if(s.replace(r, "zz").length <= l){
		return s.replaceAll("\\|","&nbsp;");    	
	} 
	var m = Math.floor(l/2);
	for(var i=m; i<s.length; i++){
		if(s.substring(0, i).replace(r, "zz").length>=l) {
			var str=s.substring(0, i).replaceAll("\\|","&nbsp;");
			if(d==undefined){
				return  str+"...";
			}else{
				return str;
			}
		} 
	}
	return s.replaceAll("\\|","&nbsp;");
}
/**
 * jquery去除字符串中的html
 * 示例:
 * 	var a="<b>abc</b>";
 * 	$.removeHtml(a);
 * 结果:abc
 */
jQuery.removeHtml = function(s){
	return (s)? jQuery("<p>").append(s).text(): "";
}
/**
 * 替换html代码的中的'<''>'等转换
 * 使用:
 * $.escapeHtml("<b></b>");
 */
jQuery.escapeHtml=function(s){
	return (s)? jQuery("<p>").text(s).html(): "";
}
/**
 * 文本内容提交之前做处理
 * @param s
 * @return
 */
function contentSubmitBefore(s){
	return (s)?s.replaceAll("\r\n","<br>").replaceAll("\n","<br>").replaceAll("\r","<br>"):"";
}
/**
 * 文本显示之前处理
 * @param s
 * @return
 */
function contentSubmitAfter(s){
	return (s)?s.replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll("&lt;br&gt;","<br/>").replaceAll("&lt;br/&gt;","<br/>"):"";
}
/**
 * 替换html标签 
 * @param s
 * @return
 */
function htmlTagReplace(s){
	return (s)?s.replaceAll("<","&lt;").replaceAll(">","&gt;"):"";
}

/**
 * 将timestamp以 yy-mm-dd : mm:ss 格式返回
 * @param timestamp
 * @return
 */
function getDate(timestamp,type){
   var timeCreated = new Date(timestamp);
   if(type == undefined){
		//yy-mm-dd : hh:mm
var timeFormated = timeCreated.getFullYear() +"-" + (timeCreated.getMonth()+1) +"-"+timeCreated.getDate() +" " +timeCreated.getHours()+":" + timeCreated.getMinutes() ;
    return timeFormated;
    }if(type == 1){
//yy-mm-dd : hh:mm
var timeFormated = timeCreated.getFullYear() +"-" + (timeCreated.getMonth()+1) +"-"
		 +timeCreated.getDate() +" " +timeCreated.getHours()+":" + timeCreated.getMinutes() ;
}else if(type == 2){
		//yy-mm-dd : hh:mm:ss
		var timeFormated = timeCreated.getFullYear() +"-" +(timeCreated.getMonth()+1) +"-"
		 +timeCreated.getDate() +" " +timeCreated.getHours()+":" + timeCreated.getMinutes() 
		+":"+timeCreated.getSeconds();
}else if( type == 3){
		//yy-mm-dd
		var timeFormated = timeCreated.getFullYear() +"-" + (timeCreated.getMonth()+1) +"-"
		 +timeCreated.getDate();
}
return timeFormated;
}
/**
 * 计算传入时间和当前时间差
 * @param d 时间 格式:2010-04-10 10:22:36
 * @return
 */
function getDateDiff(d,now){
	if(now==undefined){
		now=new Date().getTime();
	}else{
		now=Date.parse(now.replace(/-/g,'/').replace(/:/g,":"));
	}
	var diffValue = now - Date.parse(d.replace(/-/g,'/').replace(/:/g,":"));
	if(diffValue < 0){     
		return "刚刚";    
	}   
	var minute = 1000 * 60;  
	var hour = minute * 60;  
	var day = hour * 24; 
	var halfamonth = day * 15; 
	var month = day * 30; 
	var monthC =diffValue/month;   
	var weekC =diffValue/(7*day);   
	var dayC =diffValue/day;   
	var hourC =diffValue/hour;  
	var minC =diffValue/minute;       
	if(monthC>=1){    
		result=parseInt(monthC) + "个月前";    
	}else if(weekC>=1){
		result=parseInt(weekC) + "个星期前";    
	}else if(dayC>=1){    
		result= parseInt(dayC) +"天前";    
	}else if(hourC>=1){    
		result= parseInt(hourC) +"个小时前";   
	}else if(minC>=1){    
		result= parseInt(minC) +"分钟前";    
	}else{
		result="刚刚";    
	} 
	return result;  
}
/**  
 *转换日期对象为日期字符串  
 * @param date 日期对象  
 * @param isFull 是否为完整的日期数据,  
 *               为true时, 格式如"2000-03-05 01:05:04"  
 *               为false时, 格式如 "2000-03-05"  
 * @return 符合要求的日期字符串  
 */  
function getSmpFormatDate(date,isFull){   
    var pattern = "";   
    if (isFull==true||isFull==undefined) {   
        pattern = "yyyy-MM-dd hh:mm:ss";   
    } else {   
        pattern = "yyyy-MM-dd";   
    }   
    return getFormatDate(date,pattern);   
} 
/**  
 *转换当前日期对象为日期字符串  
 * @param date 日期对象  
 * @param isFull 是否为完整的日期数据,  
 *               为true时, 格式如"2000-03-05 01:05:04"  
 *               为false时, 格式如 "2000-03-05"  
 * @return 符合要求的日期字符串  
 */  
function getSmpFormatNowDate(isFull){   
    return getSmpFormatDate(new Date(),isFull);   
}
/**  
 *转换long值为日期字符串  
 * @param l long值  
 * @param isFull 是否为完整的日期数据,  
 *               为true时, 格式如"2000-03-05 01:05:04"  
 *               为false时, 格式如 "2000-03-05"  
 * @return 符合要求的日期字符串  
 */  
function getSmpFormatDateByLong(l,isFull){   
    return getSmpFormatDate(new Date(l),isFull);   
}  
/**  
 *转换long值为日期字符串  
 * @param l long值  
 * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss  
 * @return 符合要求的日期字符串  
 */  
function getFormatDateByLong(l,pattern){   
    return getFormatDate(new Date(l),pattern);   
}
/**  
 *转换日期对象为日期字符串  
 * @param l long值  
 * @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss  
 * @return 符合要求的日期字符串  
 */  
function getFormatDate(date,pattern){   
    if(date==undefined){   
        date=new Date();   
    }   
    if(pattern==undefined){   
        pattern="yyyy-MM-dd hh:mm:ss";   
    }   
    return date.format(pattern);   
} 
/**
 * 计算还可以输入的字数
 * max 最大字数
 * fun 回调方法
 * type 如果type不传递以英文为基础,type=1则以中文为基础
 * 调用如下:
 *  $('input').woyoObserver(100,function(num,val){
		$('#result1').text('数量: '+ num);
		$('#result2').text('内容: '+ val);
	});
 */
jQuery.fn.woyoObserver=function(max,fun,type){
	$(this).delayedObserver(function(){
		 var _this=$(this);
		 if(type==1){
			var _r = /[^\x00-\xff]/g;
			var _s=$.trim(_this.val());
			var _m=_s.replace(_r, "zz").length;
			fun(max-Math.floor(_m/2),_this.val(),this);
		 }else{
			fun(max-$.trim(_this.val()).length,_this.val(),this);
		 }
	},0.0001);
}
/**
 * 获取星期
 * @param date 时间戳
 * @return
 */
function getDayOfWeek(date){
    var today = new Array("周日","周一","周二","周三","周四","周五","周六");
    return today[new Date(date).getDay()];
}
/**
 * 格式化开始时间和接受时间,例如: 跨天:7月1日 周四 09:00- 7月30日 周五 17:00 不跨天: 7月30日 周五 21:00 - 23:55
 * @param start 开始时间戳
 * @param end 结束时间戳
 * @return
 */
function formatStartEndDate(start,end){
	if(end<start){return "时间错误";}
	var c=end-start;
	var minute = 1000 * 60;  
	var hour = minute * 60;  
	var day = hour * 24; 
	if(parseInt(c/day)<=0){
		var d=new Date(start).format("MM月dd日");
		var week=getDayOfWeek(start);
		var t1=new Date(start).format("hh:mm");
		var t2=new Date(end).format("hh:mm");
		return d+" "+week;
	}else{
		var d1=new Date(start).format("MM月dd日");
		var d2=new Date(end).format("MM月dd日");
		var w1=getDayOfWeek(start);
		var w2=getDayOfWeek(end);
		var t1=new Date(start).format("hh:mm");
		var t2=new Date(end).format("hh:mm");
		return d1+" "+w1+" - "+d2+" "+w2;
	}
}
补struts中的标签显示时间的
<s:property value="gmtCreatedString.substring(0,16)"/>,从哪里开始显示
  相关解决方案