代码之家  ›  专栏  ›  技术社区  ›  Sao Ho

Yii2在gridview中计算两个日期之间的天数

  •  0
  • Sao Ho  · 技术社区  · 6 年前
                'class' => 'kartik\grid\FormulaColumn', 
                'header' => 'Days Work', 
                'value' => function ($model, $key, $index, $widget) { 
                    $time = new \DateTime('now');
                    $today = $time->format('Y-m-d');
                    $p = compact('model', 'key', 'index');
                    $datetime2 = $model->activedate;
                    $interval = $today->diff($datetime2)->days;
                    return $interval;
                },
                'headerOptions' => ['class' => 'kartik-sheet-style'],
                'hAlign' => 'right', 
                'width' => '7%',
            ],
    

    我使用上面的代码来计算今天的日期和活动日期之间的日期。代码显示错误 Call to a member function diff() on string .

    请告诉我哪里错了。

    非常感谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   csminb    6 年前

    您需要使用 DateTime 对象来计算差异,而不是 $today 变量,它是一个字符串(因此您会收到错误消息)

    替换:

    $interval = $today->diff($datetime2)->days;
    

    具有

    $interval = $time->diff($datetime2)->days;