Asp.net 算时间差 -- XXX小时前,XXX天以前,XXX分钟以前 发布

 DateTime.Parse(pubDate).ToUniversalTime()

时间格式的转换很重要!! 不然 日期格式不一致时,会计算错误!!


/// <summary>
    /// 格式化输出日期
    /// </summary>
    /// <param name="pubDate"></param>
    /// <returns>XXX小时前,XXX天以前,XXX分钟以前</returns>
    public static string FormatDateTime(string pubDate)
    {
        //string sql = string.Format("select DATEDIFF(mi,'{0}',getdate()) 'min',DATEDIFF(hh,'{0}',getdate()) 'hour',DATEDIFF(dd,'{0}',getdate()) 'day'", pubDate);


        DateTime dt1 = DateTime.Parse(pubDate).ToUniversalTime();//2005-11-5 5:21:25 
        DateTime dt2 = DateTime.Now;


        TimeSpan ts1 = new TimeSpan(dt1.Ticks);
        TimeSpan ts2 = new TimeSpan(dt2.Ticks);
        TimeSpan tsp = ts1.Subtract(ts2).Duration();


        //string dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
        //TimeSpan tsp = DateTime.Parse(DateTime.Now.ToString()) - DateTime.Parse(pubDate);
        //TimeSpan tsp = DateTime.Now.Subtract(DateTime.Parse(pubDate));


        int hr = tsp.Hours;
        int min = tsp.Minutes;
        int day = tsp.Days;
        string result = pubDate;
        if (day > 1)
        {
            return (day + "天之前");
        }


        if (hr > 1)
        {
            return (hr + "小时之前");
        }
        if (min > 1)
        {
            return (min + "分钟之前");
        }


        return result; ;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值