0
$timeFromMysql = strtotime($createdtime);
$currenTime = SPRequest::now();;

if ($diff = abs( strtotime( $timeFromMysql ) - strtotime( $currenTime )  > 30*24*60*60) {  
  ACTION
}

我只是想知道我这样做是否正确。似乎该动作是在没有时间检查的情况下完成的。

4

3 回答 3

1

你的父母不匹配。

if ($diff = abs( strtotime( $timeFromMysql ) - strtotime( $currenTime ) )  > 30*24*60*60) {  
 //ACTION
}

进一步分解:

if (
  $diff = abs(
    strtotime( $timeFromMysql ) - strtotime( $currenTime )
  )  > 30*24*60*60)
{  
 //ACTION
}

数一数你的括号并确保它们匹配。

于 2013-04-14T14:58:58.083 回答
0

我收到以下错误:

PHP 通知:DateInterval 类的对象无法在规则 128 中转换为 int blabla

这是代码(128):

if ( $difference > 30*24*60*60) { 

有关更多信息,这里是一个更大的代码:

$timeFromMysql = strtotime($createdtime);
$currenTime = SPRequest::now();

function format_interval(DateInterval $interval) {
    $result = "";
    if ($interval->y) { $result .= $interval->format("%y years "); }
    if ($interval->m) { $result .= $interval->format("%m months "); }
    if ($interval->d) { $result .= $interval->format("%d days "); }
    if ($interval->h) { $result .= $interval->format("%h hours "); }
    if ($interval->i) { $result .= $interval->format("%i minutes "); }
    if ($interval->s) { $result .= $interval->format("%s seconds "); }
    return $result;
}

$first_date = new DateTime($createdtime);
$second_date = new DateTime($currenTime);

$difference = $first_date->diff($second_date);

//echo format_interval($difference);
//echo $createdtime;
//echo $currenTime;

if ( $difference > 30*24*60*60) { 
    // load the apicall
    $xml = simplexml_load_file($api);
}

回声工作正常。

于 2013-04-23T15:01:43.857 回答
0

您不检查是否等于 - 您将值分配给 $diff,这始终是正确的。所以:

$diff ==
于 2013-04-14T14:59:31.653 回答