MySQL datetime и функция Current Date Time

0

Я новичок в 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 (секунды в час), и я все еще пытаюсь обернуть голову вокруг этого.

Есть ли что-то основное, что мне не хватает? Или это довольно сложно, как мне кажется?

Теги:

2 ответа

1
Лучший ответ
$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);
  • 0
    Это здорово! С вашим кодом, приведенным выше, похоже, что он будет возвращать либо целые часы между временем, либо целые минуты. Вот зингер, как бы вы нашли минуты до часов между часами? ех. 5 часов и 34 минут
  • 0
    это немного сложнее, но в основном вы берете разницу между двумя временными метками, а затем определяете, сколько часов вы делите разницу на 3600 (60 секунд * 60 = 1 час), а затем берете остаток и делите его на 60, чтобы получить Вы минусы. Во всяком случае, я надеюсь, что моя математика там верна. Надеюсь это поможет.
Показать ещё 3 комментария
0

решение, которое может быть полезно для вас, вместо использования функции MySQL теперь, почему бы не создать ваше поле ввода типа INT, а затем сохранить в нем временную метку unix с помощью функции php time(), а затем вставить ее в база данных просто добавляет 1 час в секундах к метке времени. Затем, когда вы извлекаете данные из своей таблицы, вы можете работать с меткой времени и функцией даты и времени php, чтобы создать любую временную метку, которую вы хотите. Вот ссылка на функцию php time(), которая может помочь: http://php.net/manual/en/function.time.php

  • 0
    Спасибо! Определенно собираюсь пройти через это. Спасибо!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню