Из моей таблицы пользователя я получаю целое число (например, 60), которое должно составлять максимум минут, которые пользователь может использовать для своего полного времени разрыва.
Когда пользователь входит и выходит из своего перерыва, он перестраивается в другой таблице следующим образом:
$timestamp = date("Y-m-d H:i:s");
$sql = "INSERT INTO user_log (username, in_pause, action_time)
VALUES ('$username', 1, '$timestamp')";
Где я пишу 1, когда он входит, и 0, когда он выйдет.
Я подсчитываю, как долго пользователь прерывается от этих двух отмеченных временных меток (так как после моего запроса sql я помещал отметки времени в $ zeiten []):
$pause_start = new DateTime($zeiten[1]);
$pause_ende = new DateTime($zeiten[0]);
$pause_diff = $pause_start->diff($pause_ende);
Пока это прекрасно. Но я не могу найти способ манипулировать целым числом (здесь 60) из моей таблицы пользователя, чтобы я мог вычесть из него мой $ pause_diff. Я хочу иметь возможность рассчитать время перерыва, которое осталось у пользователя.
Спасибо!
Попробуйте этот код:
<?php
$max_minutes = (int) 60;
$zeiten[1] = '2000-01-01 10:00:00';
$zeiten[0] = '2000-01-01 10:10:00';
$pause_start = new DateTime($zeiten[1]);
$pause_ende = new DateTime($zeiten[0]);
$pause_diff = $pause_start->diff($pause_ende);
//$pause_diff->format('Y-m-d H:i:s');
$pause_diff_minutes = $pause_diff->format('%i');
//var_dump((int) $pause_diff_minutes);
echo 'the differnece is: ' . ($max_minutes - (int) $pause_diff_minutes) . ' minutes';
Результат:
the differnece is: 50 minutes
Вы можете играть с кодом здесь
Обновленный код, показывающий, как вы могли бы вычесть также секунды из 60 минут:
<?php
$max_minutes = (int) 60;
$max_minutes_seconds = $max_minutes * 60; // max_minutes to seconds
$zeiten[1] = '2000-01-01 10:00:00';
$zeiten[0] = '2000-01-01 10:10:05';
$pause_start = new DateTime($zeiten[1]);
$pause_ende = new DateTime($zeiten[0]);
$pause_diff = $pause_start->diff($pause_ende);
$pause_diff_minutes = $pause_diff->format('%i');
$pause_diff_seconds = $pause_diff->format('%s');
// sum total diff in seconds
$total_pause_seconds = ((int) $pause_diff_minutes * 60) + $pause_diff_seconds;
$total_diff_seconds = ($max_minutes_seconds - $total_pause_seconds);
echo 'the differnece is: ' . $total_diff_seconds . ' seconds' . "\n";
echo 'which is: ' . floor($total_diff_seconds / 60) . ' minutes and ' . $total_diff_seconds % 60 . ' seconds';
Результат:
the differnece is: 2995 seconds
which is: 49 minutes and 55 seconds
$pause_diff
, но хочу манипулировать моим числом / целым числом 60, чтобы я мог вычесть мой$pause_diff
из этого целого числа.