0

我正在尝试将月差作为整数返回并调用 if 到表列。我的代码:

function ETA($ArrivalDate, $pattern = 'mysql'){


$patterns = array(
    'eu'    => 'd/m/Y',
    'mysql' => 'Y-m-d',
    'us'    => 'm/d/Y',
);
    $CurrentDate = date("Y-m-d");

    $ArrivalDate = $variants_data['ArrivalDate'];

    $diff = $ArrivalDate->diff($CurrentDate);

    return $diff->y;

}

我称之为

<td>'.$_GET['ETA'].'</td>

但是什么都没有返回,我在这里做错了什么?

4

2 回答 2

3

您可以使用PHP中的DateTime对象以更简单的方法获得所需的内容:

function ETA($ArrivalDate){
    $currentDate = new DateTime();
    $arrivalDate = new DateTime($ArrivalDate);
    $interval    = $currentDate->diff($arrivalDate);
    return $interval->format('%m');
}

请参阅工作示例:http: //3v4l.org/UlPQo

如果您没有以适当的格式传递$ArrivalDate,则会引发异常,因此您需要将调用包装在 Try/Catch 中。

有关返回值的更多信息,请参阅日期时间间隔格式

于 2013-04-05T11:59:09.920 回答
0

试试这个简单的

<?php
  //for months
  $monthdiff=floor((abs(strtotime(date("d/m/Y")) - strtotime($ArrivalDate))/(60*60*24*30)));
  //for days
  $daydiff=floor((abs(strtotime(date("d/m/Y")) - strtotime($ArrivalDate))/(60*60*24)));

  ?>
于 2013-04-05T12:42:36.773 回答