Формат даты в PHP

12
TO
На сайте с 02.03.2016
Offline
9
1094

Как сделать дату рождения пользователя одной цифрой?

Сейчас дата рождения пользователя вводится на сайте в таком виде: 1990-8-25, а нужно в таком виде: 26 лет.

Подскажите, пожалуйста!

[Удален]
#1

А этот раздел вообще такие вопросы позволяет?

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#2
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
TO
На сайте с 02.03.2016
Offline
9
#3

Почти вся стройка из материала PHP!

Жаль TORTA в морду, но все-таки...

JD
На сайте с 25.08.2016
Offline
8
#4

Ну это довольно простой скрипт, я использую такой

function calculate_age($birthday) {

$birthday_timestamp = strtotime($birthday);

$age = date('Y') - date('Y', $birthday_timestamp);

if (date('md', $birthday_timestamp) > date('md')) {

$age--;

}

return $age;

}

тише курочка.
W
На сайте с 09.04.2013
Offline
46
#5


<?php
$age = DateTime::createFromFormat('Y-m-d', '1990-8-25')
->diff(new DateTime('now'))
->y;
printf('%d лет',$age);
ДП
На сайте с 23.11.2009
Offline
203
#6

webjey, только надо учитывать, что 12 лет, например, но 22 - уже года.

VHS
На сайте с 28.09.2007
Offline
142
VHS
#7

$age = DateTime::createFromFormat('Y-m-d', '1990-8-25')
->diff(new DateTime('now'))
->y;
switch (substr($age, -1)) {
case 1:
printf('%d год',$age);
break;
case 2:
case 3:
case 4:
printf('%d года',$age);
break;
default:
printf('%d лет',$age);
break;
}

как то так

ДП
На сайте с 23.11.2009
Offline
203
#8

VHS, не совсем, ваш код на 12 выдаст "года", а надо - лет.

https://habrahabr.ru/post/37579/ - тут вот про эту задачку поподробнее.

VHS
На сайте с 28.09.2007
Offline
142
VHS
#9
Дикий пионер:
VHS, не совсем, ваш код на 12 выдаст "года", а надо - лет.
https://habrahabr.ru/post/37579/ - тут вот про эту задачку поподробнее.

Виноват, ошибся ))) Но суть то понятна ) Как обычно на костылях )))


$age = DateTime::createFromFormat('Y-m-d', '1990-8-25')
->diff(new DateTime('now'))
->y;
if ($age > 9 && $age < 21) {
printf('%d лет',$age);
} else {


switch (substr($age, -1)) {
case 1:
printf('%d год',$age);
break;
case 2:
case 3:
case 4:
printf('%d года',$age);
break;
default:
printf('%d лет',$age);
break;
}
}

Да, на хабре покрасивше...

TO
На сайте с 02.03.2016
Offline
9
#10

Актуально!

Данный код выводит дату в виде даты рождения: 1990-8-25, а нужно, чтобы код выводил возраст, к примеру 26 лет.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий