好的,很奇怪。
如果学校因我的孩子县关闭,请写一个脚本来检查XML Feed。每个条目都有一个“生效日期”节点,即学校结束公告生效的日期。
我正在做的是比较生效日期是否早于当前时间,这意味着在午夜之后,当天的结束将起作用。但如果他们事先在傍晚/晚上关闭学校呢?
我需要检查生效日期是否大于今天,但是从下午4点而不是午夜开始。
date_default_timezone_set('America/New_York');
$date_effective = $announcement->date_effective;
// format of xml feed datetime - 2018-02-02 00:00:00.000000
$date = new DateTime($date_effective);
$now = new DateTime();
// Here is where I need help, not sure how to word this
// if($date < $now || $date < $now - '8 hours') {
if($date < $now) {
// iterate through cases based on status
}
答案 0 :(得分:2)
使用strotime
代替
<?php
date_default_timezone_set('America/New_York');
$date_effective = $announcement->date_effective;
$date = strtotime($date_effective);
// since 1 hr is 3600 secs so multiply this by 8 which result to 28800
$now = strtotime('now') - 28800;
if($date < $now) {
// iterate through cases based on status
}
答案 1 :(得分:2)
使用\DateTime::sub结合代表时差的\DateInterval:
$now = new DateTime;
$then = (clone $now)->sub(DateInterval::createFromDateString('8 hours'));
if ($date < $now || $date < $then) {
// ...
}
(请注意clone
的使用,因为sub
修改了它所调用的对象。)