WEB2.0类的网站越来越多了,对于时间显示这个概念也都有不同的方法了,
类似:"刚刚","*分钟前","几天前"这些字眼也常常会见到了
于是近期老在想这个到底是怎么实现的,在一次看lovdbyless的时候不经意发现了
Time-ago-in-words 方法
用法也比较简单
<%=time_ago_in_words(from_time, include_seconds = false) %>
##include_seconds是否显示秒
看了下原码
def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
from_time = from_time.to_time if from_time.respond_to?(:to_time)
to_time = to_time.to_time if to_time.respond_to?(:to_time)
distance_in_minutes = (((to_time - from_time).abs)/60).round
distance_in_seconds = ((to_time - from_time).abs).round
case distance_in_minutes
when 0..1
return (distance_in_minutes == 0) ? 'less than a minute' : '1 minute' unless include_seconds
case distance_in_seconds
when 0..4 then 'less than 5 seconds'
when 5..9 then 'less than 10 seconds'
when 10..19 then 'less than 20 seconds'
when 20..39 then 'half a minute'
when 40..59 then 'less than a minute'
else '1 minute'
end
when 2..44 then "#{distance_in_minutes} minutes"
when 45..89 then 'about 1 hour'
when 90..1439 then "about #{(distance_in_minutes.to_f / 60.0).round} hours"
when 1440..2879 then '1 day'
when 2880..43199 then "#{(distance_in_minutes / 1440).round} days"
when 43200..86399 then 'about 1 month'
when 86400..525599 then "#{(distance_in_minutes / 43200).round} months"
when 525600..1051199 then 'about 1 year'
else "over #{(distance_in_minutes / 525600).round} years"
end
end
def time_ago_in_words(from_time, include_seconds = false)
distance_of_time_in_words(from_time, Time.now, include_seconds)
end
小弟我不学习浅不知道有没有中文显示时间差的,于是就自己在application_helper里面写了下面的转换为中文
def ch_time(from_time)
time = time-ago-in-words(from_time,include_seconds = true)
time = time.sub(/about /,"")
time = time.sub(/over /,"")
if time.to_i == 0
case time.to_s
when 'half a minute' then '半分钟前'
when 'less than a minute' then '不到1分钟前'
when 'less than 5 seconds' then '5秒前'
when 'less than 10 seconds' then '10秒前'
when 'less than 20 seconds' then '20秒前'
end
else
mun = time.to_i
case time[-3,3]
when 'nds' then mun.to_s+'秒前'
when 'ute' then mun.to_s+'分前'
when 'tes' then mun.to_s+'分钟前'
when 'urs','our' then mun.to_s+'小时前'
when 'day','ays' then mun.to_s+'天前'
when 'nth','ths' then mun.to_s+'个月前'
when 'ear','ars' then mun.to_s+'年前'
end
end
end
分享到:
相关推荐
ACM_NOI_CSP竞赛宝典:策略、代码与实战经验共享 在ACM、NOI、CSP等计算机编程竞赛的激烈角逐中,每一个细节都可能决定胜负。你是否在寻求一本能够系统指导你备赛、分享竞赛策略和实战经验的宝典?现在,我们为你...
ALTIUM DESIGNER是全球领先的电子设计软件之一,集成了原理图捕获、PCB布局、3D可视化、仿真分析、库管理等多个功能模块,为设计者提供了一站式的解决方案。它以其直观的用户界面、高效的自动化流程和强大的设计功能...
"强化学习入门宝典:Pytorch实现九种DRL算法的详细教学与实战",强化学习之九种DRL算法Pytorch实践教程:从REINFORCE到PPO-discrete-RNN算法教学解析,强化学习教学 Pytorch 实现的9种 DRL 算法 包括以下9种:...
【汇率实战宝典:分清汇率黑白】 汇率作为金融市场的核心元素之一,是全球经济互动的重要桥梁。华创宏观·张瑜团队的这份培训材料详细解析了汇率的定价机制、波动影响因素以及人民币国际化等关键议题,旨在帮助投资...
WPF编程宝典:使用C# 2012和.NET 4.5(第4版),完整扫描版. 带书签,经本人整理裁剪适合手机屏,1-3章为清晰版,其它为扫描版
《WPF编程宝典:使用C# 2012和.NET 4.5 第4版》是一本全面深入探讨Windows Presentation Foundation (WPF) 的技术书籍,它以C# 2012和.NET Framework 4.5为开发语言和平台。这本书详细介绍了如何利用WPF创建现代化、...
在"葵花宝典-WPF自学手册"中,你可能会学习到如何使用XAML来创建用户界面,理解数据绑定和依赖属性的工作原理,学习各种控件的使用方法,以及如何利用布局系统和资源管理来优化你的应用程序。此外,可能还会涉及到...
### 五、总结 《网络宝典》是一本全面覆盖网络技术各个方面的权威指南。它不仅适合希望深入了解网络安全基础知识的初学者,也适合那些需要掌握最新技术和标准的专业人士。通过这本书,读者可以学习到如何构建一个既...
### 基于LabVIEW的ARM Cortex-M3嵌入式开发宝典知识点解析 #### 一、概述 本文档提供了一份全面的指南,用于指导如何使用LabVIEW进行ARM Cortex-M3微控制器(以STM32F103为例)的嵌入式系统开发。文档分为四个主要...
WPF编程宝典 : C#2010版/ (美)Matthew MacDonald著;王德才译 共有 118M,PDF 文档 --------------------------------------------- 注意 >>:此书共有 2 个文件,请.点击我名字.搜索全部下载才可顺利解压缩 ------...
WPF编程宝典 : C#2010版/ (美)Matthew MacDonald著;王德才译 共有 118M,PDF 文档 --------------------------------------------- 注意 >>:此书共有 2 个文件,请.点击我名字.搜索全部下载才可顺利解压缩 ------...
本文档提供了《黑客攻防技术宝典:Web实战篇》一书第二版中的习题答案,涵盖了Web应用程序安全、核心防御机制、会话管理、访问控制、输入确认、跨站点脚本攻击、Web应用程序技术、状态码、SSL和代理服务器等多个方面...
光刻胶行业深度报告:半导体材料·光刻胶投资宝典-43-浙商证券-5页.pdf
### 云计算宝典:技术与实践 #### 一、概览 《云计算宝典:技术与实践》是一本深入探讨云计算技术与应用实践的专业书籍。本书由一群在IBM中国研究院虚拟化与云计算研究部有着丰富实践经验的研究人员撰写,旨在帮助...
ALTIUM_DESIGNER实用宝典:原理图与PCB设计.
直接导入mysql即可使用
葵花宝典--WPF自学手册 如XAML,WPF体系结构,依赖属性,WPF命令, 页面,导航,布局,数据捆绑,互操作,自定义控件,3D图形等
国际宏观评论-华西证券-宏观研究宝典:详解中美财政体制.pdf