我尝试减去15分钟。从另一个时间(开始时间)开始。 我想检查当前时间是否为15分钟。会议开始之前。
foreach($result->value as & $value) {
$start = $value->Start->DateTime;
$startmeeting = substr($start, 11, -11); //cut time to hour:minute
$now= date('H:i', time());
$min= strtotime('-15 minutes');
$timebefor = date($startmeeting, $min); //Here I want to substract starttime with 15 min
if( $now >= $timebefor && $now <= $startmeeting )
{
//Show yellow warning box
}
}
这种方式是否有可能?
答案 0 :(得分:1)
您基本上已经有了解决方案,但是它并不整洁,并且包含错误。我认为您想做这样的事情:
foreach ($result->value as $value) {
$meetingStart = strtotime($value->Start->DateTime);
if (($meetingStart > time()) &&
($meetingStart < strtotime('15 minutes')))
{
//Show yellow warning box
}
}
简而言之:如果会议是在将来举行,但距离会议不到15分钟,则必须显示黄色警告框。
编程时,请始终注意您选择的名称。请注意,我如何使用$nowPlus15Minutes
来明确指出该变量包含的内容。您使用的$min
并不是很容易解释。 $value
和$start
之类的名称也存在相同的问题。也许$timebefor
拼写错误?
答案 1 :(得分:1)
我建议您与此一起使用PHP:DateTime。如果您的系统使用外部API(例如Google日历),我通常也会指定时区。
$currentTime = new DateTime("now", new DateTimeZone("Asia/Singapore"));
$reminderTime = new DateTime("2019-08-08T12:00:00.0000000", new DateTimeZone("Asia/Singapore"));
$reminderTime->sub(new DateInterval("PT15M")); // PT means period time, 15 minutes.
// Comparison of DateTime is allowed from PHP 5.2.2 onwards
if($currentTime > $reminderTime) {
// Do something
}
// For DEBUGGING
echo $currentTime->format('Y-m-d H:i:s') . "\n" . $reminderTime->format('Y-m-d
H:i:s');
有关更多信息,请参见DateTime文档。