计算Drupal视图中的日期差异

时间:2016-02-06 15:29:05

标签: php date drupal-7 drupal-views

我需要计算Drupal 7视图中两个Date字段之间的差异。 我该怎么做呢? 安装了Views PHP但无法弄清楚Date Fields的工作原理。 我已经搜索了这个并尝试了一些片段,但现在我放弃了。 节点中的两个Date字段是: 开始时间:2016-02-06 07:15 贱人:2016-02-09 16:15 我试过的代码片段是:

$start=$row->field_start;
$slut=$row->field_slut;
$diff=$slut-$start;
print_r($diff);

这只会导致0.当我在视图PHP字段中获取它们时,两个变量的值都是4? 已尝试使用相同结果的日期和日期(Unix时间戳)。 / Chrotto

3 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

// make sure the values you are getting here are correct
$start_value = $row->field_start;
$end_value = $row->field_slut;

$start_date = new DateObject($start_value);
$end_date = new DateObject($end_value);
$duration = $start_date->diff($end_date);

答案 1 :(得分:0)

我切换到我的Drupal 8安装(无论如何应该移植)并在php.net上找到了这个工作:

$datetime1 = date_create($row->field_start);
$datetime2 = date_create($row->field_stop);
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%a days %h hours och %i minuts');

答案 2 :(得分:0)

实际上这是我想要的工作时间,经过一些挖掘后我找到了更好的方法:

 $start = strtotime($row->field_start);
 $stop = strtotime($row->field_stop); 
 $time_elapsed=$stop-$start;
 $minutes=$time_elapsed/60;
 $hours=$minutes/60;
 echo $hours;