MySQL время / дата расчета - PullRequest
1 голос
/ 28 июня 2011

Во-первых, запись в базе данных:

enter image description here

У меня есть форма ввода, которая записывает дату начала, время начала и окончания (в часах и минутах) рабочих дней плюсперерыв на обед в минутах (в примере dato = дата, modetime = начальный час, modeminut = начальная минута, fyrtime = конечный час, fyrminut = конечная минута).Мне нужно сделать несколько вычислений:

  • Сначала вычислите дату, начальные часы и минуты в модеме поля datetime.
  • Выполните аналогичный расчет с конечными часами и минутами, нопереместить дату на один день вверх, если конечные часы меньше начального часа (назовем это fyrtid)
  • И, наконец, вычислим разницу между fyrtid и modetid минус минуты паузы.это должно быть сделано напрямую и автоматически в базе данных (если да, как) или мне нужен PHP для этого (и снова, если да, как)?

    Я знаю, что это сложный заказ, но у меня нетсмог найти много информации о дате / времени вычислений, что имело смысл на моем низком уровне знаний.Любая ссылка на исчерпывающее руководство по расчету даты / времени в MySQL или PHP также будет приветствоваться.

1 Ответ

0 голосов
/ 28 июня 2011

Я предлагаю вам поработать с функцией php time (), которая основана на метке времени Unix (например, UNIX_TIMESTAMP () в Mysql). Время unix выглядит следующим образом: 1307387678. Используйте календарь в вашей форме для времени начала и для вашего времени окончания. укажите, какие клиенты могут выбрать время суток (часы и минуты), затем преобразуйте эти поля с помощью strtotime () в метку времени unix, как в следующем коде (установите формат даты в мм / дд / гггг):

$startdate = strtotime ( "$_POST['calender_start'] $_POST['hour_start']:$_POST['minutes_start']"  );
$enddate = strtotime ( "$_POST['calender_end'] $_POST['hour_end']:$_POST['minutes_end']"  );

Измените ваши поля таблицы базы данных на: cpr, startDate, endDate, pause, basked, .....

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

SELECT ...... FROM [TABLE_NAME] WHERE [VALUE] BETWEEN startDate AND endDate 

Я надеюсь, что это будет полезно для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...