Удаление часов из времени

Моя цель: Удалите 4 часа из времени в базе данных, а затем запустите код для отправки текста. При этом удалите секунды и отсчитывайте только часы и минуты. Секунды удаляются в части PHP и отображаются, но не удаляются в базе данных (было бы удобно, если бы кто-то мог научить меня этой части также отображать только часы и минуты и удалять секунды из БД)

В настоящее время у меня есть:

#Variables
$Time = Time in the DB


$TimeMinus = strtotime('- 4 hours');

$TimeNow = date("h:i:sa");

$cleantime = substr($Time,0,5);

Затем я попытался запустить следующее:

$TimeRemoved = substr($TimeNow,0,5) - $TimeMinus;

и отладить его через

echo "Current time: $TimeNow<br>Time in DB: $cleantime<br/>Time with four hours removed: $TimeRemoved.";

но я получаю такой ответ:

Current time: 05:55:09pm
Time in DB: 17:40
Time with four hours removed: -1536580504. 

Странно отображается время с удаленными четырьмя часами. Я не лучший в mysqli или php, так что извините за кодирование.

Я изменил код $ TimeRemoved на: $ TimeRemoved = substr ($ Time, 0,5) - 4; и теперь отображается «13». Конечно, это правильно, но минуты не отображаются.

Jitrenka 10.09.2018 18:07

Вроде работает как положено. Strtotime (-4 часа) даст вам «сейчас» - 4 часа по времени Unix (секунды, прошедшие с 1970 года). Когда вы удалите это из своего времени, это строка, она вернет отрицательное значение

Andreas 10.09.2018 18:08

Сосредоточьте свой вопрос на том, что у вас есть и чего вы хотите, это немного сбивает с толку. Включите образец ввода и то, как он должен выглядеть после запуска кода

Andreas 10.09.2018 18:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
211
3

Ответы 3

Для решения на основе MySQL вы можете использовать функцию TIME_FORMAT с маской формата, содержащей только часы и минуты. Например:

SELECT TIME_FORMAT('15:02:28', '%H:%i')
FROM dual;

15:02

$time4=strtotime($sqltime - 14400); // your sqltime minus 4 hours $cleantime = date( 'G:i', $time4);

Где sqltime - это дата и время, которое вы получаете из своей БД.

Вы хотите сначала превратить его в метку времени, а затем изменить ее.

Я не уверен, что именно вам нужно, тогда я покажу вам кучу результатов:

$times = [];

$times["db"] = strtotime($Time);
$times["now"] = time();
$times["removed"] = strtotime('- 4 hours');
$times["removedFromDB"] = $times["db"] - 60 * 4;

foreach ($times as $key => $time) {
    echo $key . " - " . date("H:i", $time) . " | ";
}

https://3v4l.org/lEGF7

Другие вопросы по теме