比较日期时间对象php

时间:2017-07-24 16:30:41

标签: php datetime

我必须将日期时间对象与php进行比较,$availability是一个包含日期的数组(从2017-07-24 16:20:08.0000002017-07-25 16:20:08.000000),时间是2017-07-23 16:20:08.000000

/// when : 2017-07-23
$when = DateTime::createFromFormat( 'Y-m-d', '2017-07-23' );
// from : 2017-07-24 
$from = DateTime::createFromFormat( 'Y-m-d', '2017-07-24' );
// to : 2017-07-25 
$to   = DateTime::createFromFormat( 'Y-m-d', '2017-07-25' );
if ( $when >= $from && $when <= $to ) { echo $when . "is between from and to"; }

这不起作用,还是我错过了什么?

如何比较DateTime::createFromFormat中的对象?是可能的,还是我必须strtotime

1 个答案:

答案 0 :(得分:0)

一些问题:

1)根据输入,条件将失败。具体来说,您的$when对象在$from对象(前一天)之前保留一段时间。因此,$when >= $from在if语句中失败。

2)if语句块中的代码会出错。 DateTime::createFromFormat()方法创建的变量是DateTime 对象。你不能回显一个对象,它必须转换为一个字符串,这可以通过使用DateTime类的format方法来完成。因此,将if块中的代码重写为:

echo "{$when->format('Y-m-d')} is between {$from->format('Y-m-d')} and {$to->format('Y-m-d')}";