php - 我想在一个while循环日期中获取第一天和最后一天并将它们放在一个变量中
问题描述
我有一个类似祈祷时间的日历,
让我们说从(05-12-2020)到(07-28-2020)的日历
这个日历有2个祈祷时间,一个在晚上,另一个在早上,在这个月的乞讨和月底,它们是完全不同的时间
举个例子:第一次祈祷在(01:42 AM)和第二次在(00:19 AM) ..所以我在这里没有问题。
但它们在此日期范围中间的几天内同时出现
举个例子:第一个祈祷变成(01:17 AM),第二个也变成(01:17 AM)
我怎么知道它们变得相似的第一天和最后一天的日期并将其放入变量中???
很抱歉,因为我真的无法很好地解释我的意思,而且代码也很大,所以我不能粘贴它,但我会上传一张图片来澄清更多
请注意:我使用while循环通过一些数学和天文方程计算它们,并且时间因城市而异,因此它们是动态的而不是静态的,但会发生相同的情况
我正在考虑类似的事情
if($first_prayertime == $second_prayertime){
//give me the first and last date they are similar
//and put every one of them in a variable
}
解决方案
在迭代时,检查匹配时间。
在第一次遇到时,将这两个变量与行的日期一起保存。
在随后的匹配遭遇中,覆盖最后日期。
一旦找到第一个日期并且存在时间不匹配,请中断循环以避免不必要的迭代。
伪代码:
$firstPrayerDate = null;
foreach ($prayerData as $row) {
if ($row['first_prayertime'] === $row['second_prayertime']) {
if (!$firstPrayerDate) {
$firstPrayerDate = $row['prayerDate'];
$lastPrayerDate = $firstPrayerDate
} else {
$lastPrayerDate = $row['prayerDate'];
}
} elseif ($firstPrayerDate) {
break;
}
}
推荐阅读
- c# - 在字符串类型的用户控件上创建依赖属性,但在属性浏览器中显示为组合框
- angular - 如何在angular7中开发在两个不同组件之间切换的选项卡?
- java - 错误:JAVA_HOME 设置为 libGDX 中的无效目录
- jdbc - 使用 Simba JDBC Driver for BigQuery 将 BigDecimal 值插入 NUMERIC 列时,为什么会丢失数字精度?
- keras - 卷积一维计算它实际上是如何工作的?
- c# - 中继器在将其用作自定义寻呼机时变得越来越大,在gridview中进行自定义分页
- c - 信号量中的 P(&sem) 和 V(&sem) 如何影响代码?
- r - 用 NA 替换行中的重复数据,除了第一个
- python - 无法从 request.session 中按键获取值;我用 django
- android - PJSUA2:联系标头 uri 长度限制