= HOUR_IN_SECONDS ) { $hours = round( $diff / HOUR_IN_SECONDS ); if ( $hours <= 1 ) { $hours = 1; } // translators: %s: hours. $since = sprintf( _n( '%s hr', '%s hrs', $hours, 'ultimate-member' ), $hours ); } elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) { $days = round( $diff / DAY_IN_SECONDS ); if ( $days <= 1 ) { $days = 1; } if ( 1 === $days ) { // translators: %s: time. $since = sprintf( __( 'Yesterday at %s', 'ultimate-member' ), date_i18n( get_option( 'time_format' ), $from ) ); } else { // translators: %1$s is a date; %2$s is a time. $since = sprintf( __( '%1$s at %2$s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) ); } } elseif ( $diff < 30 * DAY_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) { // translators: %1$s is a date; %2$s is a time. $since = sprintf( __( '%1$s at %2$s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) ); } elseif ( $diff < YEAR_IN_SECONDS && $diff >= 30 * DAY_IN_SECONDS ) { // translators: %1$s is a date; %2$s is a time. $since = sprintf( __( '%1$s at %2$s', 'ultimate-member' ), date_i18n( 'F d', $from ), date_i18n( get_option( 'time_format' ), $from ) ); } elseif ( $diff >= YEAR_IN_SECONDS ) { // translators: %1$s is a date; %2$s is a time. $since = sprintf( __( '%1$s at %2$s', 'ultimate-member' ), date_i18n( get_option( 'date_format' ), $from ), date_i18n( get_option( 'time_format' ), $from ) ); } /** * UM hook * * @type filter * @title um_human_time_diff * @description Change human time string * @input_vars * [{"var":"$since","type":"string","desc":"Disable UM Cron?"}, * {"var":"$diff","type":"int","desc":"Difference in seconds"}, * {"var":"$from","type":"int","desc":"From Timestamp"}, * {"var":"$to","type":"int","desc":"To Timestamp"}] * @change_log * ["Since: 2.0"] * @usage add_filter( 'um_human_time_diff', 'function_name', 10, 4 ); * @example * */ return apply_filters( 'um_human_time_diff', $since, $diff, $from, $to ); } /** * Get age. * * @todo working with timestamps in this function. * * @param string $then * * @return string */ public function get_age( $then ) { if ( ! $then ) { return ''; } $then_ts = strtotime( $then ); $then_year = date( 'Y', $then_ts ); $age = date( 'Y' ) - $then_year; if ( strtotime( '+' . $age . ' years', $then_ts ) > current_time( 'timestamp' ) ) { $age--; } if ( 0 === $age ) { return __( 'Less than 1 year old', 'ultimate-member' ); } // translators: %s: age. return sprintf( _n( '%s year old', '%s years old', $age, 'ultimate-member' ), $age ); } /** * Reformat dates * * @param $old * @param $new * * @return string */ public function format( $old, $new ) { $datetime = new \DateTime( $old ); $output = $datetime->format( $new ); return $output; } /** * Get last 30 days as array * * @deprecated 2.8.0 * * @param int $num * @param bool $reverse * * @return array */ public function get_last_days( $num = 30, $reverse = true ) { _deprecated_function( __METHOD__, '2.8.0' ); $d = array(); for ( $i = 0; $i < $num; $i++ ) { $d[ date('Y-m-d', strtotime( '-' . $i . ' days' ) ) ] = date( 'm/d', strtotime( '-' . $i . ' days' ) ); } return ( $reverse ) ? array_reverse( $d ) : $d; } } }