假设您在MySQL数据库的列中有时间值列表。
Time
-----
10:15 AM
10:35 AM
10:55 AM
并说现在是10:27 AM。如何在PHP中的变量中专门获取10:35 AM值?
我知道我可以用
获得当前时间$currenttime = time();
然后使用
操作时间值$some_time = strtotime($row['time']);
但是如何将最接近的那个变成$ some_time变量?
答案 0 :(得分:1)
您希望记录时间与参考时间之间的最小增量行,其中记录时间大于参考时间。
SELECT * FROM SomeTable AS T
WHERE T.Time = (SELECT MIN(T2.Time) FROM SomeTable AS T2
WHERE T2.Time > ?)
'?'是您参考时间的占位符。
答案 1 :(得分:1)
您可以使用TIMESTAMPDIFF
SELECT
time, TIMESTAMPDIFF(MINUTE, time, NOW()) AS minutes
ORDER BY
minutes, time DESC
如果您只想选择最近时间的一个拖车:
SELECT
time, TIMESTAMPDIFF(MINUTE, time, NOW()) AS minutes
ORDER BY
minutes, time DESC
LIMIT 1
答案 2 :(得分:0)
尝试获取当前时间和可能时间之间差异的绝对值。无论哪个值最低都是最接近的。从那里你唯一要担心的是,如果一个给定的时间同样接近两次,你可以用你喜欢的任何方式来处理(对我而言,在这一点上简单地进行整理似乎是最合理的)
的问候,
丹尼斯M。