PHP 查找最小数字/日期的快捷方式
我遇到的情况是,已创建一系列 15 个日期,当前采用 UNIX 时间戳。
另一个变量
目标是找到 15 个其他日期中 >
大于 $dateidate 的最小日期,并以 'dmY'
格式显示
完成此操作后,有一种方法可以获取其他 15 个日期中第二小的 >
大于 $dateidate
的日期,并以 的格式显示>'dmY'
。
I have a situation whereby a series of 15 dates have been created, currently in UNIX timestamps.
Another variable <?php $dateidate = date(strtotime('+20 days')); ?>
The objective is to find the smallest of the 15 other dates that is greater >
than $dateidate and display in the format of 'd-m-Y'
Once we've done that is there a way to get the second smallest of the 15 other dates that is greater >
than $dateidate
and display in the format of 'd-m-Y'
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因此,您有 15 个日期,它们是 UNIX 时间戳。有用。
好的,您可以执行以下操作来轻松完成此操作:
So, you have 15 dates which are UNIX timestamps. Useful.
Ok, here's what you can do to do it easily:
strtotime 生成时间戳。
而不是这样做:
这样做:
将所有时间戳放入具有特殊键的数组中,以便您可以区分哪个是您的枢轴。
对该数组进行排序,然后对排序后的数组执行您需要执行的操作。
strtotime generates a timestamp.
instead of this:
do this:
Put all timestamps into an array with special keys so you can distinguish which one is your pivot.
Sort that array and do what you need to do with the sorted array.
此解决方案过滤
$dates
数组,该数组使用 匿名存储时间戳函数,因此在$shorterOnes
数组中,您将拥有大于$dateidate
的所有时间戳。然后对数组进行排序,第一个将是最小的,依此类推。
匿名函数仅适用于 PHP 5.3。低于此,您需要使用 create_function()。
This solution filters the
$dates
array which stores the timestamps using an anonymous function, so in the$shorterOnes
array you will have all the timestamps that are bigger than$dateidate
.Then the array is sorted, the first one will be smallest and so on.
Anonymous functions only work from PHP 5.3. Lower than that, you need to use create_function().