JAVASCRIPT、ANDROID、C#分别实现普通日期转换多少小时前、多少分钟前、多少秒

貌似最近很流行这个,就写了个js函数实现之

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script language="javascript">
  function stringToDateTime(postdate)
  {  
    var second = 1000;
    var minutes = second*60;
    var hours = minutes*60;
    var days = hours*24;
    var months = days*30;
    var twomonths = days*365;
    var myDate = new Date(Date.parse(postdate));   
    if (isNaN(myDate))   
    {    
        myDate =new Date(postdate.replace(/-/g, "/"));   
    } 
    var nowtime = new Date();
    var longtime =nowtime.getTime()- myDate.getTime();
    var showtime = 0;
    if( longtime > months*2 )
    {
        return postdate;
    }
    else if (longtime > months)
    {    
        return "1个月前";
    }
    else if (longtime > days*7)
    {    
        return ("1周前");
    }
    else if (longtime > days)
    {    
        return(Math.floor(longtime/days)+"天前");
    }
    else if ( longtime > hours)
    {    
        return(Math.floor(longtime/hours)+"小时前");
    }
    else if (longtime > minutes)
    {    
        return(Math.floor(longtime/minutes)+"分钟前");
    }
    else if (longtime > second)
    {    
        return(Math.floor(longtime/second)+"秒前");
    }else
    {
        return(longtime+" error ");
    }
   }     

    document.write(stringToDateTime("2009-05-24 15:05:00"));
    
  </script>
 </HEAD>
 <BODY >
 </BODY>
</HTML>

  

最近研究android,用java写的实现方法

 

public static String getTimeDiff(Date date) {
		Calendar cal = Calendar.getInstance();
		long diff = 0;
		Date dnow = cal.getTime();
		String str = "";
		diff = dnow.getTime() - date.getTime();
		
		if  (diff > 2592000000L) {//30 * 24 * 60 * 60 * 1000=2592000000 毫秒
			str="1个月前";
		} else if  (diff > 1814400000) {//21 * 24 * 60 * 60 * 1000=1814400000 毫秒
			str="3周前";
		} else if  (diff > 1209600000) {//14 * 24 * 60 * 60 * 1000=1209600000 毫秒
			str="2周前";
		} else if  (diff > 604800000) {//7 * 24 * 60 * 60 * 1000=604800000 毫秒
			str="1周前";
		} else if (diff > 86400000) {	//24 * 60 * 60 * 1000=86400000 毫秒
			//System.out.println("X天前");
			str=(int)Math.floor(diff/86400000f) + "天前";
		} else if (diff > 18000000 ) {//5 * 60 * 60 * 1000=18000000 毫秒
			//System.out.println("X小时前");
			str=(int)Math.floor(diff/18000000f) + "小时前";
		} else if (diff > 60000) {//1 * 60 * 1000=60000 毫秒
			//System.out.println("X分钟前");
			str=(int)Math.floor(diff/60000) +"分钟前";
		}else{
			str=(int)Math.floor(diff/1000) +"秒前";
		}
		return str;
	}

  

网上有用C#后台实现的方法,为方便查看就转贴到下面吧:)

public string DateStringFromNow(DateTime dt)    
{    
TimeSpan span = DateTime.Now - dt;    
if (span.TotalDays >60)    
{    
return dt.ToShortDateString();    
}    
else
if ( span.TotalDays >30 )    
{    
return
"1个月前";    
}    
else
if (span.TotalDays >14)    
{    
return
"2周前";    
}    
else
if (span.TotalDays >7)    
{    
return
"1周前";    
}    
else
if (span.TotalDays >1)    
{    
return
string.Format("{0}天前", (int)Math.Floor(span.TotalDays));    
}    
else
if (span.TotalHours >1)    
{    
return
string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));    
}    
else
if (span.TotalMinutes >1)    
{    
return
string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));    
}    
else
if (span.TotalSeconds >=1)    
{    
return
string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));    
}    
else 
{    
return
"1秒前";    
}    
}

  转自:http://www.cnblogs.com/Excellent/archive/2009/05/24/1488270.html

posted @ 2013-12-04 15:06  牧舟  阅读(492)  评论(0编辑  收藏  举报