如何检查php日期时间变量是否在范围内


How to check whether a php datetime variable is within range

在问这个问题之前,我已经查看了PHP手册,并在谷歌上搜索了一下,但仍然对如何正确地做到这一点感到困惑-如何检查我的datetime变量的时间部分是否大于给定时间?

假设我有一个变量$time,如下所示:

$mdata['entry_date_time'] = $this->input->post('entry_date_time');
$time = $mdata['entry_date_time']->format('H:i:s');

我想做的是这样的事情:

if($time > 12:00:00)
{
    //do something
}

基于第二个代码片段,我的问题是:

  1. 我的语法正确吗
  2. 如果没有,那么正确的语法是什么
  3. 除了我的方法之外,还有什么更好的方法来做我想做的事情吗?如果是,那是什么

根据输入的格式,在这种情况下可以使用日期时间:

$date_input = $this->input->post('entry_date_time');
$date = new DateTime($date_input);
if($date->format('H') > 12) {
    // do what you have to do
}

如果您的格式不能直接在构造函数上使用,则可能需要使用createFromFormat:

完整回答:

  1. 不,这是不正确的,因为您的post值很可能是字符串,因此将->作为箭头运算符是没有意义的,因为它不是对象
  2. 和3。上面的答案