php:将日期与if条件进行比较

时间:2016-09-05 03:32:36

标签: php xml

我处境很奇怪。我有xml feed和我通过使用for循环一次读取一个xml值在数据库中存储xml feed数据。 xml中的日期值如下所示。

<date>Friday, 02 Sep 2016 00:00:00</date>

我在下面写了比较日期的代码。

 $todays = date("Y-m-d");
 $newdates = strtotime ( '-4 day' , strtotime ($todays) ) ;
    echo $today = date ( 'Y-m-d' , $newdates );

some code for xml feed 

$dates = $item[$i]->date;
echo $newDate = date("Y-m-d", strtotime($dates));

if($today != $newDate ) {
               break;
             }

else{
Store in database
}

这是输出。 2016年9月1日 2016-09-02

我可以在xml中看到9月1日有很多数据。但是,如果我将if与if条件进行比较,则数据不会返回。 有人建议我做错了什么?

3 个答案:

答案 0 :(得分:2)

在您的代码中看到这个?

  

$ dates = $ item [$ i] - &gt; date;

你可以爆炸变量$ date来摆脱“星期五”,只关注日期“02 Sep 2016 00:00:00”。

$dates = $item[$i]->date;
$dates = explode(",", $dates);

并替换

  

echo $ newDate = date(“Y-m-d”,strtotime($ dates));

用,

echo $newDate = date("Y-m-d", strtotime($dates[1]));

这应该是好的。 如果它适用于您,请告诉我们。

答案 1 :(得分:2)

将原始代码修改为以下内容:

$todays = date("Y-m-d");
$newdates = strtotime ( '-4 day' , strtotime ($todays) ) ;
    echo $today = date ( 'Y-m-d' , $newdates );

// some code for xml feed 

$dates = $item[$i]->date;
$dates = explode(",", $dates);
echo $newDate = date("Y-m-d", strtotime($dates[1]));

if($today != $newDate ) {
               break;
             }

else{
Store in database
}

答案 2 :(得分:1)

您需要将SimpleXMLElement强制转换为字符串才能获得该值

import { compose } from "@ngrx/core/compose";
import { StoreModule } from "@ngrx/store";

@NgModule({
    ...
    imports: [
        ...
        StoreModule.provideStore(compose(...))
    ],
    ...

我编写了一段更简单的代码,它应该与您的代码尝试做同样的事情。

$dates = (string) $item[$i]->date;

Demo