日期区间的终点是用第二天的 00:00:00 还是当天的 23:59:59 比较好?

查看 524|回复 45
作者:xubingok   
跟后端对接口,发现关于日期区间的定义有点模糊.
比如查询昨天的数据,我们一般是传起始时间点.
对接后端 A 的参数是:
{
    startTime:2024-01-04 00:00:00,
    endTime:2024-01-04 23:59:59
}
对接后端 B 的参数是:
{
    startTime:2024-01-04 00:00:00,
    endTime:2024-01-05 00:00:00
}
后端 A 说他用的是小于等于,后端 B 说他用的是小于,前端的时间工具类还得写两个方法...
想统一,但感觉两种方式都有自己的道理.
个人是倾向于 00:00:00 这种,可能是来源于数组截取时顾头不顾尾的概念.
另一位后端大佬则觉得 23:59:59 更便于理解.
不知道大家都是用哪种呢?

后端, 2024-01-04

luomao   
用 23:59:59 ,00:00:00 已经是第二天了
justlazydog   
都可以,统一就行,常识上一般是 23:59:59 。
corcre   
用 23:59:59, 因为永远不知道谁没事传个日期/加个字段只记日期, 用 datetime 类型还把时间给截了...
coderzhangsan   
让后端统一口径,前端没有必要兼容 2 种方案。
tusj   
前闭后开区间,用 00:00:00
belin520   
moment 等时间库的 endOfDay 是 23:59:59
lscho   
肯定是 23:59:59 ,0 点已经是第二天了
douxc   
不懂就问:如果记录到了毫秒级,23:59:59 会少 1 秒的数据吗?
Curtion   
A 更好, 左闭右开并不是一个常识, 大众常识应该左闭右闭, 选 00:00:00 会误以为包括第二天开始, 我们系统很多客户已经反馈过了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部