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;

}

I call it with

<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 で呼び出しをラップする必要があります。

戻り値の詳細については、 DateTime Interval Formatを参照してください。

于 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 に答える