我必须将日期时间对象与php进行比较,$availability
是一个包含日期的数组(从2017-07-24 16:20:08.000000
到2017-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
?
答案 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')}";