Я использую функцию (найденную в Интернете), которая вычисляет время, прошедшее до сих пор.Я передаю два параметра: дата публикации и текущая дата.он вернет годы, месяцы, дни, часы, минуты ИЛИ секунды.он использует функцию сравнения даты в PHP 5.3, которая не работает в версии 5.2: (*
function pluralize( $zaehler, $inhalt ) {
return trim($zaehler . ( ( $zaehler == 1 ) ? ( " $inhalt" ) : ( " ${inhalt}s" ) )." ago");}function ago($datetime, $datetime_post){
$interval = date_create($datetime_post)->diff( date_create($datetime) );
if ( $interval->y >= 1 ) return pluralize( $interval->y, 'year' );
if ( $interval->m >= 1 ) return pluralize( $interval->m, 'month' );
if ( $interval->d >= 1 ) return pluralize( $interval->d, 'day' );
if ( $interval->h >= 1 ) return pluralize( $interval->h, 'hour' );
if ( $interval->i >= 1 ) return pluralize( $interval->i, 'minute' );
if ( $interval->s >= 1 ) return pluralize( $interval->s, 'second' );}
пример:
$post_date_time = "01/01/2012 11:30:22";
$current_date_time = "02/02/2012 07:35:41";
echo ago($current_date_time, $post_date_time);
выведет:
1 month
Теперь мне нужна эквивалентная функция «назад», которая будет делать то же самое, в зависимости от объекта $ interval.
Большое вам спасибо
Дополнительная информация: Ни одно из предоставленных решений на самом деле не помоглото, что я искал. Мне нужно улучшить мои объяснения, извините. В конце мне нужен только объект $ интервал, чтобы иметь это:
object(DateInterval)#3 (8) { ["y"]=> int(0) ["m"]=> int(1) ["d"]=> int(0) ["h"]=> int(20) ["i"]=> int(5) ["s"]=> int(19) ["invert"]=> int(0) ["days"]=> int(6015) }
Нет необходимости менять так много вещей.