我通过表单从用户那里得到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
视为错误。确保输入的时间大于正确的时间实例的正确方法是什么
答案 0 :(得分:0)
DateTime::diff
返回DateInterval
,其中包含属性invert
:
反转
如果间隔代表负时间段则为1,否则为0。
因此,您可以使用$date->diff($now) > 0
来代替$now->diff($date)->invert
。
(注意:这不是严格“大于”,它实际上是“大于或等于”。如果这很重要,很容易翻转它,但它似乎不够相关保证。)