php - PHP DatePeriod 在午夜之前和之后,只有时间,没有日期
问题描述
我需要在没有日期的两次之间找到 15 分钟的间隔,如果两次都在 00:00 之前,一切正常。我正在传递时间,例如17:00
:23:00
和01:30
。
午夜之后当然是另一天的问题,所以这就是它失败的原因。我想知道是否有办法找到间隔,因为结束时间可以是任何例如。在午夜之前或之后,因此添加真实日期可能并不理想,它只会在午夜之后几个小时而已。
$period = new DatePeriod(
new DateTime("17:00"),
new DateInterval('PT15M'),
new DateTime("01:00")
);
不返回任何内容,任何帮助将不胜感激。
解决方案
因为您只使用时间部分,所以日期将自动设置为当天......这使得结束小于开始。
但是,如果您采取真正的日期(哪些并不重要)并选择第二天的 1'clock...
$period = new DatePeriod(
new DateTime("1970-01-01 17:00"),
new DateInterval('PT15M'),
new DateTime("1970-01-02 01:00")
);
foreach ($period as $date) {
echo $date->format("H:i").' - ';
}
hth
推荐阅读
- web-deployment - 可以从任何地方访问我的 Oracle 云应用程序自定义网页
- python - 在 QTabBar 中的各个选项卡上设置和保留颜色
- javascript - 无法附加到查找元素
- sql - 为每一列添加前缀
- java - 中断()空闲线程而不是等待()/通知()会更好吗?
- cucumber - Cucumber 3:如何定义正则表达式
- angularjs - 从 index.html 调用视图控制器
- android - 每 5 秒向安卓智能手机写入数据对硬盘来说是个问题吗?
- google-tag-manager - 与 GTM 一起发布的 JSON-LD 结构化数据测试工具出错:“对象声明中缺少 ',' 或 '}'。”
- windows - 在 Windows 10 上使用端口 8000 停止未知的 AppDetectService