Рассчитать разницу во времени в представлениях Drupal
Мне нужно рассчитать разницу между двумя полями Date в Drupal 7 представлений. Как мне это сделать? Установил Views PHP, но не могу понять, как работают поля даты. Я искал это и попробовал некоторые фрагменты, но теперь я сдаюсь. Два поля даты в узле: Начало: 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. Значения для обеих переменных равны 4, когда я получаю их в поле зрения PHP? Пробовал и дату и дату (метка времени Unix) с одинаковым результатом. /Chrotto
3 ответа
Вы можете попробовать что-то вроде этого:
// 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);
На самом деле это были рабочие часы, которые я хочу получить, и после еще нескольких копаний я нашел лучший способ сделать это:
$start = strtotime($row->field_start);
$stop = strtotime($row->field_stop);
$time_elapsed=$stop-$start;
$minutes=$time_elapsed/60;
$hours=$minutes/60;
echo $hours;
Я переключаюсь на мою установку 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');