Loading...
iwanovw avatar iwanovw 7 Точки

Exam Retake - Game Catalog: Register form

Здравейте, опитвам се да валидирам рожденната дата на потребителя, когато се регистрирва. По условие се изисква да е между 1900 год и текущата, но нещо judge се сърди и не дава точки. Ето ми кода: 

        if (strtotime($user->getBornOn()) > strtotime('now')) {
            throw new \PDOException("Born On must be between 1900 and 2018!");
        }

 

Тагове:
0
PHP Web 04/04/2018 19:50:44
dvdty avatar dvdty 497 Точки

Първо: strtotime използва unix timestamp - броя секунди изминали от 1 януари 1970. Не мисля, че ще ти свърши работа по-ранни дати.

Второ: проверката ти не е вярна. В if-а разглеждаш само случай, в който датата на раждане е след тукещата. Нямаш никаква проверка дали годината е преди 1900.

Силно ти препоръчвам да използваш DateTime обекта.

0
04/04/2018 20:37:46
iwanovw avatar iwanovw 7 Точки

Да, знам че нямам проверка дали е преди 1900, просто защото не успях да го измисля и затова реших да попитам. Ще го разгледам обекта и ще опитам. Благодаря за препоръката. :)

0
iwanovw avatar iwanovw 7 Точки

А за съобщението за грешка трябва ли да пиша някакво си ръчно

Born On must be between 1900 and 2018!

или от обекта да взема грешките? Питам не за друго, ами че ако вярното условието в judge е написано с 2017 год, а задам 2018 год - отново няма да ми даде, че ми е верен отговорът дори и подходът за валидация да е правилен. /Проверява какво пише в съобщението/ wink

 

0
05/04/2018 20:51:37
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.