php - PHP数组中的天数的交集
问题描述
对于预订系统,我想查看用户输入的开始和结束日期是否与存储在两个数组中的开始和结束日期相交。一个数组保存所有开始日期,一个数组保存所有结束日期。数组中的值之前已从数据库中获取。
$startArray = [0 => "1.1.2021", 1 => "5.1.2021", 2 => "10.1.2021"];
$endArray = [0 => "6.1.2021", 1 => "8.1.2021", 2 => "13.1.2021"];
$startUser = "3.1.2021";
$endUser = "5.1.2021";
我的目标是查看用户所做的选择是否与数组中的选择相交。我试过这个
foreach ($startArray as $key => $value) {
if (($startUser <= $endArray[$key]) && ($endUser >= $value)) {
//action;
}
但这行不通。我最好怎么做?
编辑:日期格式实际上是 2021-01-01。在数组中以及用户输入中。
解决方案
很难比较这样的字符串。检查日期时我喜欢做的是使用可以更容易比较的 DateTime 对象。
$d1 = new DateTime('2008-08-03 14:52:10');
$d2 = new DateTime('2008-01-03 11:11:10');
var_dump($d1 == $d2);
var_dump($d1 > $d2);
var_dump($d1 < $d2);
?>
bool(false)
bool(true)
bool(false)
推荐阅读
- flutter - 我在颤振http中需要帮助,但我不知道我在做什么
- elasticsearch - 带有弹性搜索数据库的 CubeJS 仪表板
- angular - 除非数据已更改,否则防止角度组件重新渲染
- ios - 无法在设备“watchOS 7.4 (18T187) 上安装应用程序”
- r - 在 R 中将日期对象从“%Y/%m/%d”更改为“%d/%m/%Y”
- android - 如何从图像画家包颤动中删除图标面板
- google-chrome - Chrome 扩展程序:新窗口以白屏打开
- android - 如何在水平旋转木马模型中显示环氧树脂垂直旋转木马模型 | 安卓
- php - 使用文件获取内容从电子商务网站获取产品价格
- javascript - JSON 元素不会加载到 DOM javascript 中