【发布时间】:2017-07-24 16:30:40
【问题描述】:
我必须将 datetime 对象与 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?
【问题讨论】:
-
解释“不起作用”....你的意思是它显示中间消息?
-
$when是 23 号,小于$from24 号。所以第一个条件$when >= $from立即失败。此外,您不能echo $when;- 它是一个对象,而不是一个字符串。回显时需要使用$when->format("Y-m-d")。 -
echo $when也会得到类似Object of class DateTime could not be converted to stringuse$when->format('YYYY-mm-dd')的错误 -
也许你应该首先在你的文件顶部添加error reporting到你的文件顶部测试时在你打开PHP标签之后,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);,看看它是否产生任何东西。 -
@Mark Baker,这意味着它不显示中间消息。 @RiggsFolly,你是对的,我当然累了,我没有找到那个 23 大声笑,谢谢你指出这一点。