PHP将Datetime对象与当前日期时间进行比较并找到更小的

时间:2015-03-22 07:25:57

标签: php datetime

我通过表单从用户那里得到datetime并且他输入的日期时间应该大于当前有效的时间实例。

我正在尝试这样的事情

$input_format = 'd M Y - h:i a';
$date = DateTime::createFromFormat($input_format, $_POST['delivery_time']);
$now = new DateTime();
if(!$date || ($date->diff($now) > 0))
{
   $error .= '* Invalid Delivery Day/Time';
   error_log('WARNING :: Invalid Delivery Time at LINE: '.__LINE__.' in '.__FILE__.'\n',3,$logfile);
}

我在比较中遇到问题。我将Object of class DateInterval could not be converted to int视为错误。确保输入的时间大于正确的时间实例的正确方法是什么

1 个答案:

答案 0 :(得分:0)

DateTime::diff返回DateInterval,其中包含属性invert

  

反转

     

如果间隔代表负时间段则为1,否则为0。


因此,您可以使用$date->diff($now) > 0来代替$now->diff($date)->invert

(注意:这不是严格“大于”,它实际上是“大于或等于”。如果这很重要,很容易翻转它,但它似乎不够相关保证。)