Я новичок в php date() и strtotime и пытаюсь найти решение этого для большой части дня без реального решения (я подошел близко, но безрезультатно).
У меня есть типичная строка базы данных с столбцом "отправленный", который вводится через отправленный = NOW() (в формате даты и времени). Я пытаюсь получить текущее время и найти разницу между обоими значениями в "x Hours and x minutes". Чтобы сделать несколько интереснее, мой веб-сервер отстает от меня по часам. Я пробовал "date_default_timezone_set (" EST "); и это помогает выполнять функцию date date(), но, очевидно, не помогает мне с моими уже вставленными datetimes.
$lastEntryDate = date('l, F dS Y', strtotime($entryDate));
$lastEntryTime = date('g:ia', strtotime($entryDate.'+1 hour'));
$currDate = date('l, F dS Y');
$currTime = date('g:ia');
Итак, попробовал делать $lastEntryTime - $currTime, но это, очевидно, перепуталось в зависимости от времени суток (как мне кажется, в 24-часовом формате).
Я искал googled вокруг и нашел пару сообщений на форумах, указывающих, используя 3600 (секунды в час), и я все еще пытаюсь обернуть голову вокруг этого.
Есть ли что-то основное, что мне не хватает? Или это довольно сложно, как мне кажется?
$now = time();
$entrytime = strtotime($entryDate) + (60 * 60) //60 seconds times 60 minutes = 1 hour
$difference = $now - $entrytime;
$hours = floor($difference / (60 * 60));
$minutes = $difference - ($hours * 60 * 60);
решение, которое может быть полезно для вас, вместо использования функции MySQL теперь, почему бы не создать ваше поле ввода типа INT, а затем сохранить в нем временную метку unix с помощью функции php time(), а затем вставить ее в база данных просто добавляет 1 час в секундах к метке времени. Затем, когда вы извлекаете данные из своей таблицы, вы можете работать с меткой времени и функцией даты и времени php, чтобы создать любую временную метку, которую вы хотите. Вот ссылка на функцию php time(), которая может помочь: http://php.net/manual/en/function.time.php