Здесь я пишу одну функцию, из этого кода не работает должным образом, значение $ joiningdate 1 год готово означает, что оно будет показано 01 лет назад, но предположим, что 10 месяцев только закончились, значит, я хочу показать 10 месяцев назад, то же самое в течение нескольких дней, я думаю, что если состояние моего неправильно, здесьКак показать значение за 2 месяца назад
echo $since_start->format('%Y years %m Months %a days %h hours %i minuts %s seconds');//00 years 2 Months 61 days 13 hours 44 minuts 24 seconds.
я получу правильного значение
function timeAgo($logintime)
{
date_default_timezone_set('UTC');
date_default_timezone_set('Asia/Kolkata');
$start_date = new DateTime($logintime);
$since_start = $start_date->diff(new DateTime(date("Y-m-d h:i:s")));
if(intval($since_start->format('%Y')) >= 1){
echo $year = $since_start->format('%Y years ago');
}
else if(intval($since_start->format('%m')) >= 12){
echo $months = $since_start->format('%m month ago');
}
else if(intval($since_start->format('%a')) >= 1){
echo $days = $since_start->format('%a days ago');
}
else if(intval($since_start->format('%h')) >= 1){
echo $hourss = $since_start->format('%h hours ago');
}
else if(intval($since_start->format('%i')) >= 1){
echo $min = $since_start->format('%i minuts ago');
}
else if(intval($since_start->format('%s')) >= 1){
echo $min = $since_start->format('%s seconds ago');
}
}
У вас есть много, если х, но ни одна из этих переменных не определены ?! Кроме того, возможно, вы захотите изменить текст в каждом случае, а не каждый год? – Naruto
Как @Naruto прокомментировал, что ваши переменные выходят за рамки функции, например, поскольку вы только определили '$ joiningdate', а ваши переменные' $ Y, $ m, $ h' выходят за рамки функции –
Теперь как можно делать? –