我需要按照创建的日期在我的网络应用中对一组项目进行分组 .
每个项目都有一个确切的时间戳,例如 1417628530199
. 我正在使用Moment.js及其“time from now”功能将这些原始时间戳转换为可读的日期,例如 2 Days Ago
. 然后,我想将可读日期用作在同一日期创建的一组项目的 Headers .
问题是原始时间戳太具体了 - 在同一天创建的两个项目相隔一分钟,每个项目都有一个唯一的时间戳 . 所以我得到 2 Days Ago
的 Headers ,下面是第一个项目,然后是 2 Days Ago
的另一个 Headers ,下面是第二个项目,等等 .
将原始时间戳舍入到最近日期的最佳方法是什么,以便在同一日期创建的任何项目将具有完全相同的时间戳,从而可以组合在一起?
6 回答
试试这个:
http://jsfiddle.net/cdn5rvck/4/
那么,使用js你可以做到:
Edit:
检查了几种方法后,这个方法似乎更快:
你可以在这里查看速度差异:http://jsfiddle.net/juvian/3aqmhn2h/
使用Moment.js,您可以使用以下代码将所有内容舍入到一天的开头:
您可以在docs中阅读有关
startOf()
的更多信息 .只使用年,月和日期从现有日期构建一个新日期 .
由于这似乎占用空间很小,因此扩展原型以将其包含在Date“类”中也是有用的 .
最小化:
这应该工作,而且非常快 .
这适用于我的项目 . 纯数学,不需要字符串操作,不需要外部库,所以它非常快 .
您可以尝试将上述功能复制到javascript控制台,然后执行
normalizeTimeToDate(Date.now())