zoukankan      html  css  js  c++  java
  • 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秒前";    
    }    
    }
    

      

  • 相关阅读:
    java学习6-java基础类库
    java学习5-面向对象(下)
    java学习4-面向对象(上)
    java学习3-流程控制与数组
    java学习2-数据类型和运算符
    pycharm(社区版2019.1版本)打开README.md文件卡死解决办法
    python深拷贝与浅拷贝的区别
    python中list切片详解
    python使用input().split()接收多个用户输入
    python学习-语言概述(一)
  • 原文地址:https://www.cnblogs.com/Excellent/p/1488270.html
Copyright © 2011-2022 走看看