Цитата (lexxbry @ 3.09.2018 - 12:05) |
Даты нужны для сравнения с текущей |
Цитата |
Интервью у известного боксера: - А зачем вам такие сильные ноги? - Ну… - Это, наверное, чтобы быть ловким и вовремя уходить с линии атаки? - А, ну да… - А зачем вам такие сильные руки? - Ну… - Это, наверное, чтобы наносить сопернику сильные удары? - Ага… - А зачем вам голова? Наверное, для того, чтобы просчитывать стратегию боя и тактические комбинации? - Ага… А еще я в нее ем… |
lexxbry, используйте varchar и все.
lexxbry
4.09.2018 - 10:24
Цитата (Эли4ка @ 3.09.2018 - 22:09) |
lexxbry, используйте varchar и все. |
А как тогда сравнивать день и месяц с текущими?
killer8080
4.09.2018 - 11:09
Цитата (lexxbry @ 4.09.2018 - 10:24) |
А как тогда сравнивать день и месяц с текущими? |
$dt1 = new DateTime();
$dt2 = new DateTime('1325-03-25');
echo $dt1->diff($dt2)->format('С даты 1325-03-25 прошло %Y года');
С даты 1325-03-25 прошло 693 года
killer8080, ну ладно Эличка подтормаживает, она блондинка, ну ты-то чего? Сравнение должно производиться средствами СУРБД. Иначе нет никакого смысла хранить данные в MySQL.
_____________
Стимулятор ~yoomoney - 41001303250491
lexxbry
4.09.2018 - 11:24
Поясню проще.
Данные в бд заносятся из компонента.
Он передает дату полную в формате date
Если сегоднящнее число( день и месяц) совпадают с днем и месяцем из бд
То выводим инфу из поля
Требуется конкретное сравнение полных дат д-м-г
С текущей curentdate( день и месяц).
Все реализовано и работает.
Один момент остался, то что не могу внести дату меньше 1900 года
Цитата (lexxbry @ 4.09.2018 - 10:24) |
Если сегоднящнее число( день и месяц) совпадают с днем и месяцем из бд То выводим инфу из поля |
Цитата (lexxbry @ 4.09.2018 - 10:24) |
Один момент остался, то что не могу внести дату меньше 1900 года |
Что же вы сразу не сказали, что изобрели машину времени!!!
_____________
Стимулятор ~yoomoney - 41001303250491
lexxbry
4.09.2018 - 11:41
Да при чем тут машина времени.
Дата рождения и дата смерти
Есть такие даты до 1900 года
Суть если человек родился 4 сентября 1895 года, то сегодня выводится надпись что сегодня день памяти этого человека
Повторяюсь, год не сравнивается, а только число и месяц
killer8080
4.09.2018 - 11:49
Цитата (Valick @ 4.09.2018 - 10:13) |
Сравнение должно производиться средствами СУРБД. |
Цитата (lexxbry @ 4.09.2018 - 10:24) |
Один момент остался, то что не могу внести дату меньше 1900 года |
ну тут тот самый случай, когда задача не решается красиво средствами СУРБД
К тому же было сказано что есть ограничения на стороне PHP, а это не совсем так.
Цитата (lexxbry @ 4.09.2018 - 10:41) |
Суть если человек родился 4 сентября 1895 года, то сегодня выводится надпись что сегодня день памяти этого человека
Повторяюсь, год не сравнивается, а только число и месяц |
самое простое решение в этой ситуации, хранить месяц и день в отдельных int полях.
lexxbry
4.09.2018 - 11:55
Хранить в отдельных полях нереально. Это надо чужой коипонент переписывать...
Еще раз повторюсь то как реализован вывод. Все работает как надо.
Проблема на стороне ввода. При клике на поле выскакивает календарь( вот там и нельзя ввести год ниже 1900).
Если писать сразу в поле, то оно пишет, но если год меньше то не вносит значение в бд...
По сути тема не критична и решилась созданием доп полей текстовых с датой рождения и датой смерти, а поля типа date используются только доя выборки( важно число и месяц),
Просто если есть вариант как заставить изменить период, то хорошо, если нет то нет.
Ломать компонент ради мелочи( пары тройки дат) нет смысла
killer8080
4.09.2018 - 12:00
Цитата (lexxbry @ 4.09.2018 - 10:55) |
Хранить в отдельных полях нереально. Это надо чужой коипонент переписывать...
|
а в чем же тогда он хранится сейчас?
Цитата (lexxbry @ 4.09.2018 - 10:55) |
Проблема на стороне ввода. При клике на поле выскакивает календарь( вот там и нельзя ввести год ниже 1900). |
ну так это уже проблема браузера, а не php, mysql
lexxbry
4.09.2018 - 12:05
Даты для сравнения с текущей хранятся в полях с типом date
Ну на браузер грешить не вариант. На всех сразу такого быть не может, а вот на календарь вполне
killer8080
4.09.2018 - 12:09
Цитата (lexxbry @ 4.09.2018 - 11:05) |
Даты для сравнения с текущей хранятся в полях с типом date
|
ну я так понял проблема же с ограничением на диапазон дат в этом формате в mysql?
Цитата (lexxbry @ 4.09.2018 - 11:05) |
Ну на браузер грешить не вариант. На всех сразу такого быть не может, а вот на календарь вполне |
календарь существует на клиентской стороне, а не на серверной, я это имел ввиду. Хотя тут надо уточнить, что подразумевается под словом "календарь"? Это тот что браузер выводит для <input type="date"> ?
lexxbry
4.09.2018 - 12:12
Именно
Поле input type=date
Можно самому ввести, а можно выбрать в календаре
killer8080
4.09.2018 - 12:15
выкинь его, пользуй например
datepicker, там все можно настроить
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.