WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Отсчет времени с момента регистрации пользователя по текущий день

Я хотел бы добавить в профиль пользователей время с момента регистрации по текущий день в формате:

С нами: 7 лет 3 месяца 2 недели 6 дней

По всей видимости, здесь необходима функция human_time_diff() https://wp-kama.ru/function/human_time_diff, но как ей воспользоваться в моем случае не представляю.

Для начала делал подобное, но выводит 50 лет, почему-то)

$udata = get_userdata( $userdata->ID );
$time_diff = human_time_diff( $udata->user_registered('U'), current_time('timestamp') );
echo $time_diff;
Заметки к вопросу:
TrueLie 22 Сен. 2019

Нашел еще вариант с использованием diff https://www.php.net/manual/ru/datetime.diff.php и format https://www.php.net/manual/ru/dateinterval.format.php

                    $today_date      = new DateTime( date( 'Y-m-d', strtotime( 'today' ) ) );
					$register_date  = get_the_author_meta( 'user_registered', $userdata->ID );
					$registered = new DateTime( date( 'Y-m-d', strtotime( $register_date ) ) );
					$interval_date   = $today_date->diff( $registered );
					if( $interval_date->days < 31 ) {
						echo num_decline($interval_date->format ('%d'), 'день, дня, дней' );
					}
					elseif( $interval_date->days < 365 ) {
						echo num_decline($interval_date->format ('%m'), ' месяц , месяца , месяцев ' );
						echo num_decline($interval_date->format ('%d'), ' день , дня , дней ' );
					}
					elseif( $interval_date->days > 365 ) {
						echo num_decline($interval_date->format ('%y'), ' год , года , лет ' );
						echo num_decline($interval_date->format ('%m'), ' месяц , месяца , месяцев ' );
						echo num_decline($interval_date->format ('%d'), ' день , дня , дней ' );
					}

Тут уже с num_decline из доработанной @Kama функции https://wp-kama.ru/question/funktsiya-skloneniya-slov-posle-chisel-php

Погонял, вроде работает. Минус - в format нет недель, а хотелось бы.

Вопрос: насколько верно все сделал? Что можно сделать лучше?

0
TrueLie
22 сентября 2019

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация