JavaScript如何实现查找字符串内的所有时间替换为人性化的时间显示方式? 目的在于把一段字符串,如“…………发表于2010-04-26 12:00:00…………发表于2010-04-27 13:30:05……”替换成类似于“…………发表于1天前…………发表于1小时前…………”这样的人性化显示方式。请问如何实现?最好是用正则表达式,如果不行用其他方式也是可以的。如果题目有没解释清的地方可以再提问。。先谢谢各位。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>var str="………… 2010-04-26 12:00:00………… 2010-04-27 12:30:05……";var arr= str.match(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g);str=str.replace(/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/g, function($1){ var d=new Date($1.replace(/[-]/g,"/")); var day=parseInt((new Date()-d)/(1000*60*60*24)); var hour=parseInt((new Date()-d)/(1000*60*60)); if(day>0)return day+"days before"; return hour+"hours before"; });alert(str);</script> 这個多余var arr= str.match(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g); var s=“…………发表于2010-04-26 12:00:00…………发表于2010-04-27 13:30:05……”;s.replace(/\d{4}-\d{2}-\d{2}\s*\d{2}:\d{2}:\d{2}/mg, function(dateAndTime) { // 在这里进行时间差计算 返回比如:1天前 return( "1天前" );}); <span id="time01">发表于2010-04-26 12:00:00</span><span id="time02">发表于2010-04-26 12:00:00</span><span id="time03">发表于2010-04-26 12:00:00</span>比较笨的方法: 每个时间加个 标签吧循环修改:当前时间 - 发表时间,结果 发表于<span id="time01">2010-04-26 12:00:00</span>发表于<span id="time02">2010-04-26 12:00:00</span>发表于<span id="time03">2010-04-26 12:00:00</span>var len = 100 ; //长度获取for(var i=0;i<len;i++){ enddata = new Data(); 截取字符串 var text = document.getElementById('time'+i).innerHTML ; time = enddata - text ; // document.getElementById('time'+i).innerHTML = "time " ;} Android平台的应用商店该怎么做??? FireFox下怎么导出table到Excel 进度条前进与后退 用javascript打开qq联系 jsp 如果获取客户端的MAC地址,急~~~ javascript 的radio验证问题 loopedSlider 图片轮换问题 如果有两层frame,怎样交互啊?? windows徽标的键怎样表示(WshShell.SendKeys()) 求助:cookie存储中文乱码问题 jQuery UI Tabs 基于 jQuery 的一个Tab选项卡导航,如何保存选项卡的选中状态 小问题求助
var str="………… 2010-04-26 12:00:00………… 2010-04-27 12:30:05……";
var arr= str.match(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g);
str=str.replace(/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/g,
function($1){
var d=new Date($1.replace(/[-]/g,"/"));
var day=parseInt((new Date()-d)/(1000*60*60*24));
var hour=parseInt((new Date()-d)/(1000*60*60));
if(day>0)return day+"days before";
return hour+"hours before";
});
alert(str);
</script>
s.replace(/\d{4}-\d{2}-\d{2}\s*\d{2}:\d{2}:\d{2}/mg, function(dateAndTime) {
// 在这里进行时间差计算 返回比如:1天前
return( "1天前" );
});
<span id="time01">发表于2010-04-26 12:00:00</span>
<span id="time02">发表于2010-04-26 12:00:00</span>
<span id="time03">发表于2010-04-26 12:00:00</span>比较笨的方法: 每个时间加个 标签吧循环修改:
当前时间 - 发表时间,结果
发表于<span id="time02">2010-04-26 12:00:00</span>
发表于<span id="time03">2010-04-26 12:00:00</span>var len = 100 ; //长度获取for(var i=0;i<len;i++){
enddata = new Data();
截取字符串
var text = document.getElementById('time'+i).innerHTML ;
time = enddata - text ; //
document.getElementById('time'+i).innerHTML = "time " ;
}