Рассчитать разницу во времени в представлениях 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');
Другие вопросы по тегам