如何将时间戳的分钟数增加到15?

时间:2011-06-15 16:17:09

标签: date coldfusion timestamp rounding

我正在建立一个应用程序来记录我的猫是否有哮喘发作。我对确切的时间不感兴趣,因为在15分钟的时间间隔内浏览更容易检查(例如,上午9:38的上午应该记录为上午9:45)。

我在cflib.org上找了一个UDF,但找不到。我修改了CF的圆形功能,但我没有按照我的要求做它。

有什么建议吗?

4 个答案:

答案 0 :(得分:5)

这可以用更多的润色(比如数据类型验证)但它需要一个时间值并将其四舍五入到最接近的15分钟增量。

<cfscript>
function roundTo15(theTime) {
    var roundedMinutes = round(minute(theTime) / 15 ) * 15;
    var newHour=hour(theTime);
    if (roundedMinutes EQ 60) {
        newHour=newHour + 1;
        roundedMinutes=0;
    }
    return timeFormat(createTime(newHour,roundedMinutes,0),"HH:mm");
}
</cfscript>

答案 1 :(得分:0)

我不熟悉这里时间戳的格式,但通常当我想要舍入时,我会做一些像floor((val + increment / 2)/ increment)* increment

答案 2 :(得分:0)

我喜欢Al Everett's answer,或者存储实际时间以保留最准确的时间,然后在视图中使用查询查询并使用between:00 and:15来显示15分钟的时间。

答案 3 :(得分:0)

如果您使用Henry的建议将精​​确时间存储在数据库中(原则:如果没有成本,则更喜欢保存数据),那么只要您向用户显示数据,就可以使用Al Everett的舍入功能。