Формат данных с високосным годом

Я хочу сделать мою регистрацию, как в Facebook. Есть 3 выпадающих списка, где я выбираю год, день и месяц. Я закончил 3 функции, которые возвращают меня (31 день, 12 месяцев и годы с 1915 по сегодняшний день). Теперь у меня есть одна проблема, когда я анализирую строку на сегодняшний день. Это мой код:

public function getDate() {
$month = $this->Month;
return $this->Year . '-' . $month . '-' . $this->Day;
}

public function getDbFormatedDate() {
$dateDeadline = date_create($this->getDate());
return date_format($dateDeadline, 'Y-m-d');
}

например, когда я беру

31 февраля 2016

. В моей базе данных этот код сохранить дату

2 марта 2016

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

31.04.2016

эта дата не существует и мой код сохранен в базе

1.05.2016.

Кто-нибудь есть идеи, как решить эту проблему?

0

Решение

Во-первых, это не имеет ничего общего с високосным годом — кроме этого февраля может быть 28 или 29 дней в зависимости от того, какой год выбран. Но другие месяцы также имеют разное количество дней, поэтому вам нужно всегда проверять, а не только в високосный год.

Чтобы проверить правильность даты на стороне PHP, используйте технику, продемонстрированную в этот ответ.

Кроме того, вы можете рассмотреть возможность создания более удобного пользовательского интерфейса, автоматически регулируя количество доступных дней в зависимости от выбранного года и месяца. Когда вы это сделаете, разместите элементы управления в порядке год-месяц-день для оптимального взаимодействия с пользователем.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]