[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Даты до 1900 года
Страницы: 1, 2, 3
Valick
Цитата (lexxbry @ 3.09.2018 - 12:05)
Даты нужны для сравнения с текущей


Цитата
Интервью у известного боксера:
- А зачем вам такие сильные ноги?
- Ну…
- Это, наверное, чтобы быть ловким и вовремя уходить с линии атаки?
- А, ну да…
- А зачем вам такие сильные руки?
- Ну…
- Это, наверное, чтобы наносить сопернику сильные удары?
- Ага…
- А зачем вам голова? Наверное, для того, чтобы просчитывать стратегию боя и тактические комбинации?
- Ага… А еще я в нее ем…
Эли4ка
lexxbry, используйте varchar и все.
lexxbry
Цитата (Эли4ка @ 3.09.2018 - 22:09)
lexxbry, используйте varchar и все.

А как тогда сравнивать день и месяц с текущими?
killer8080
Цитата (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 года
Valick
killer8080, ну ладно Эличка подтормаживает, она блондинка, ну ты-то чего? Сравнение должно производиться средствами СУРБД. Иначе нет никакого смысла хранить данные в MySQL.



_____________
Стимулятор ~yoomoney - 41001303250491
lexxbry
Поясню проще.
Данные в бд заносятся из компонента.
Он передает дату полную в формате date

Если сегоднящнее число( день и месяц) совпадают с днем и месяцем из бд
То выводим инфу из поля

Требуется конкретное сравнение полных дат д-м-г
С текущей curentdate( день и месяц).

Все реализовано и работает.
Один момент остался, то что не могу внести дату меньше 1900 года
Valick
Цитата (lexxbry @ 4.09.2018 - 10:24)
Если сегоднящнее число( день и месяц) совпадают с днем и месяцем из бд
То выводим инфу из поля


Цитата (lexxbry @ 4.09.2018 - 10:24)
Один момент остался, то что не могу внести дату меньше 1900 года


Что же вы сразу не сказали, что изобрели машину времени!!!

_____________
Стимулятор ~yoomoney - 41001303250491
lexxbry
Да при чем тут машина времени.
Дата рождения и дата смерти
Есть такие даты до 1900 года

Суть если человек родился 4 сентября 1895 года, то сегодня выводится надпись что сегодня день памяти этого человека

Повторяюсь, год не сравнивается, а только число и месяц
killer8080
Цитата (Valick @ 4.09.2018 - 10:13)
Сравнение должно производиться средствами СУРБД.

Цитата (lexxbry @ 4.09.2018 - 10:24)
Один момент остался, то что не могу внести дату меньше 1900 года

ну тут тот самый случай, когда задача не решается красиво средствами СУРБД wink.gif
К тому же было сказано что есть ограничения на стороне PHP, а это не совсем так.

Цитата (lexxbry @ 4.09.2018 - 10:41)
Суть если человек родился 4 сентября 1895 года, то сегодня выводится надпись что сегодня день памяти этого человека

Повторяюсь, год не сравнивается, а только число и месяц

самое простое решение в этой ситуации, хранить месяц и день в отдельных int полях.
lexxbry
Хранить в отдельных полях нереально. Это надо чужой коипонент переписывать...

Еще раз повторюсь то как реализован вывод. Все работает как надо.
Проблема на стороне ввода. При клике на поле выскакивает календарь( вот там и нельзя ввести год ниже 1900).
Если писать сразу в поле, то оно пишет, но если год меньше то не вносит значение в бд...

По сути тема не критична и решилась созданием доп полей текстовых с датой рождения и датой смерти, а поля типа date используются только доя выборки( важно число и месяц),

Просто если есть вариант как заставить изменить период, то хорошо, если нет то нет.

Ломать компонент ради мелочи( пары тройки дат) нет смысла
killer8080
Цитата (lexxbry @ 4.09.2018 - 10:55)
Хранить в отдельных полях нереально. Это надо чужой коипонент переписывать...

а в чем же тогда он хранится сейчас?

Цитата (lexxbry @ 4.09.2018 - 10:55)
Проблема на стороне ввода. При клике на поле выскакивает календарь( вот там и нельзя ввести год ниже 1900).

ну так это уже проблема браузера, а не php, mysql
blink.gif
lexxbry
Даты для сравнения с текущей хранятся в полях с типом date

Ну на браузер грешить не вариант. На всех сразу такого быть не может, а вот на календарь вполне
killer8080
Цитата (lexxbry @ 4.09.2018 - 11:05)
Даты для сравнения с текущей хранятся в полях с типом date

ну я так понял проблема же с ограничением на диапазон дат в этом формате в mysql?

Цитата (lexxbry @ 4.09.2018 - 11:05)
Ну на браузер грешить не вариант. На всех сразу такого быть не может, а вот на календарь вполне

календарь существует на клиентской стороне, а не на серверной, я это имел ввиду. Хотя тут надо уточнить, что подразумевается под словом "календарь"? Это тот что браузер выводит для <input type="date"> ?
lexxbry
Именно
Поле input type=date

Можно самому ввести, а можно выбрать в календаре
killer8080
выкинь его, пользуй например datepicker, там все можно настроить
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.