我需要计算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
答案 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;