2

我的变量,$current格式$row['start']2012-07-24 18:00:00

我应该如何写以下内容?

if ($row['start'] - $current < 2 hours) echo 'starts soon'

另外有没有办法将它与下面的结合起来?

<?php echo ($current > $row['start']) ? 'Started' : 'Starts';  ?>
4

2 回答 2

2

您可以使用strtotime()将这些日期时间字符串转换为时间戳,然后您可以彼此相加和相减。

$diff = strtotime($row['start']) - strtotime($current);
if ($diff < 7200) {
    echo 'Starts soon';
} else if ($diff <= 0) {
    echo 'Started';
} else {
    echo 'Starts';
}
于 2012-07-26T00:33:42.380 回答
0

我建议在几秒钟内工作(从纪元开始),这 strtotime() 非常适合:

define("SOON_THRESHOLD", 2*60*60); // 7200 seconds == 2 hours
$start_time = strtotime($row['start']);
$current_time = strtotime($current);
$seconds_til_start = $start_time - $current_time;

if($seconds_til_start < SOON_THRESHOLD) {
  ...
}
于 2012-07-26T00:35:49.230 回答