1.Вношу текущую дату в БД (поле типа datetime) таким образом
$today = date("d.m.y H:i:s");Таким образом вносятся в БД два поля (дата подачи заявки, и дата устранения неисправности). Но в базу дата вносится в формате "Y.m.d H:i:s". Подскажите пожалуйста. Версия php 5.2.12.
$query = ("INSERT INTO el_zhurnal
SET neispr_date = '".$today."'");
Почему дату в базе нужно хранить именно в формате d.m.y H:i:s? Потому что при выводе на экран таблицы из базы необходимено именно в формате день.месяц.год.
2. Надо подсчитать количество рабочих часов между датой подачи заявки и датой устранения неисправности без учета выходных (рабочий день с 8.00-17.00, суббота,воскресенье - выходной).
Помогите пожалуйста! Ума не приложу как это сделать. Заранее большое спасибо!
Спустя 17 минут, 29 секунд (18.07.2012 - 13:46) DarkLynx написал(а):
Цитата (pretty_xai @ 18.07.2012 - 10:28) |
Прошу вашей помощи. У меня возникло два вопроса при работе с датами. 1.Вношу текущую дату в БД (поле типа datetime) таким образом $today = date("d.m.y H:i:s");Таким образом вносятся в БД два поля (дата подачи заявки, и дата устранения неисправности). Но в базу дата вносится в формате "Y.m.d H:i:s". Подскажите пожалуйста. Версия php 5.2.12. Почему дату в базе нужно хранить именно в формате d.m.y H:i:s? Потому что при выводе на экран таблицы из базы необходимено именно в формате день.месяц.год. 2. Надо подсчитать количество рабочих часов между датой подачи заявки и датой устранения неисправности без учета выходных (рабочий день с 8.00-17.00, суббота,воскресенье - выходной). Помогите пожалуйста! Ума не приложу как это сделать. Заранее большое спасибо! |
Дату нужно хранить так что бы можно было решить поставленные задачи.
Если Вам не нужно время, его можно... нет.. даже нужно... не хранить... НО встает вопрос, а вдруг Вам в дальнейшем понадобится хранить и время.. Что будете делать со старыми записями? Вот! Поэтому, имхо, лучше сразу учесть это и хранить datetime.....но опять же если Вы уверены что время Вам не понадобится ни сейчас, ни завтра - не нужно его хранить..
Спустя 20 минут, 28 секунд (18.07.2012 - 14:06) pretty_xai написал(а):
Цитата |
Дату нужно хранить так что бы можно было решить поставленные задачи. Если Вам не нужно время, его можно... нет.. даже нужно... не хранить... НО встает вопрос, а вдруг Вам в дальнейшем понадобится хранить и время.. Что будете делать со старыми записями? Вот! Поэтому, имхо, лучше сразу учесть это и хранить datetime.....но опять же если Вы уверены что время Вам не понадобится ни сейчас, ни завтра - не нужно его хранить.. |
Время нужно, т.к. в поставленной задаче нужно подсчитать количество часов между датами. поэтому его нужно хранить в базе... Ну все таки подскажите, в каком формате объявлять дату в php, чтобы его можно было и в базе хранить, и выводить из базы в формате d.m.y H:i:s.
И по поводу того, как подсчитать количество часов, между датами, без учета выходных..Ни у кого мыслей нет?Очень нужно...
Спустя 1 час, 47 минут, 4 секунды (18.07.2012 - 15:53) pretty_xai написал(а):
Может я не корректно выразилась или непонятно изложила вопрос?Форумчане, подскажите пожалуйста, направьте на путь истинный....Спасибо!
Спустя 7 дней, 1 час, 2 минуты, 1 секунда (25.07.2012 - 16:55) Zhandos написал(а):
Посчитать кол-во часов между датами можно если строку перевести метку времени Unix.
Волшебная функция strtotime. Скармливаем ей строку datetime.
Дальше уже разность (кол-во пройденных секунд легко узнать).
Например:
Волшебная функция strtotime. Скармливаем ей строку datetime.
Дальше уже разность (кол-во пройденных секунд легко узнать).
Например:
// Дата подачи заявки
$date_request = '2012-07-24 15:33:35';
// Дата выполнения работы
$date_end_job = '2012-07-24 18:10:35';
/*
Вычисляем сколько часов пошло от подачи заявки до выполнения работы
Сперва вычисляем разность меток Unix времени
Делим на 3600 - это количество секунд в одном часу
Округляем
Profit
*/
$hours_between = round((strtotime($date_end_job) - strtotime($date_request)) / 3600, 2);
echo $hours_between;