Skip to Content

relative_time()

Get the current relative time of day.

PHP July 9, 2018

Usage

PHP
nebula()->relative_time($format)

Parameters

$format
(Optional) (String) The format of requested data.
Default: None

Parameter Notes

Possible formats include:

  • “description”: An array of “early” or “late” and “morning”, “afternoon”, “evening”, and “night”.
  • “standard”: An array of the three hour range in 12-hour time.
  • “military”: An array of the three hour range in 24-hour time.
  • “ampm”: A string of “am” or “pm”.

Request or provide clarification »

Additional Notes

This is used for more general time-of-day functions. The breakdown is as follows:

  • Early Morning: 6am, 7am, 8am
  • Late Morning: 9am, 10am, 11am
  • Early Afternoon: 12pm, 1pm, 2pm
  • Late Afternoon: 3pm, 4pm, 5pm
  • Early Evening: 6pm, 7pm, 8pm
  • Late Evening: 9pm, 10pm, 11pm
  • Early Night: 12am, 1am, 2am
  • Late Night: 3am, 4am, 5am

Note: Thinking of changing the name of this function to something like “nebula_general_time()” or “nebula_time_of_day()”.

Similarly, here is a graphic of body classes that get added for various times of day. This also includes the relative times used in this function”

Source File

Located in /libs/Functions.php on line 1909.

1 Hook

Find these filters and actions in the source code below to hook into them. Use do_action() and add_filter() in your functions file or plugin.

Filters
"pre_nebula_relative_time"
Need a new filter hook? Request one here.

Actions
This function has no action hooks available. Request one?

PHP
    public function relative_time($format=null){
        $override = apply_filters('pre_nebula_relative_time', null, $format);
        if ( isset($override) ){return $override;}

        if ( $this->contains(date('H'), array('00', '01', '02')) ){
            $relative_time = array(
                'description' => array('early', 'night'),
                'standard' => array(0, 1, 2),
                'military' => array(0, 1, 2),
                'ampm' => 'am'
            );
        } elseif ( $this->contains(date('H'), array('03', '04', '05')) ){
            $relative_time = array(
                'description' => array('late', 'night'),
                'standard' => array(3, 4, 5),
                'military' => array(3, 4, 5),
                'ampm' => 'am'
            );
        } elseif ( $this->contains(date('H'), array('06', '07', '08')) ){
            $relative_time = array(
                'description' => array('early', 'morning'),
                'standard' => array(6, 7, 8),
                'military' => array(6, 7, 8),
                'ampm' => 'am'
            );
        } elseif ( $this->contains(date('H'), array('09', '10', '11')) ){
            $relative_time = array(
                'description' => array('late', 'morning'),
                'standard' => array(9, 10, 11),
                'military' => array(9, 10, 11),
                'ampm' => 'am'
            );
        } elseif ( $this->contains(date('H'), array('12', '13', '14')) ){
            $relative_time = array(
                'description' => array('early', 'afternoon'),
                'standard' => array(12, 1, 2),
                'military' => array(12, 13, 14),
                'ampm' => 'pm'
            );
        } elseif ( $this->contains(date('H'), array('15', '16', '17')) ){
            $relative_time = array(
                'description' => array('late', 'afternoon'),
                'standard' => array(3, 4, 5),
                'military' => array(15, 16, 17),
                'ampm' => 'pm'
            );
        } elseif ( $this->contains(date('H'), array('18', '19', '20')) ){
            $relative_time = array(
                'description' => array('early', 'evening'),
                'standard' => array(6, 7, 8),
                'military' => array(18, 19, 20),
                'ampm' => 'pm'
            );
        } elseif ( $this->contains(date('H'), array('21', '22', '23')) ){
            $relative_time = array(
                'description' => array('late', 'evening'),
                'standard' => array(9, 10, 11),
                'military' => array(21, 22, 23),
                'ampm' => 'pm'
            );
        }

        if ( !empty($format) ){
            return $relative_time[$format];
        } else {
            return $relative_time;
        }
    }

Override

To override this PHP function, use this hook in your child theme or plugin ("my_custom" can be changed):

PHP
add_filter('pre_nebula_relative_time', 'my_custom_relative_time', 10, 2); //The last integer must be 1 more than the actual parameters
function my_custom_relative_time($null, $format){ //$null is required, but can be ignored
    //Write your own code here

    return true; //Return true to prevent the original function from running afterwords
}

You can completely disable this PHP function with a single line actions:

PHP
 add_filter('pre_nebula_relative_time', '__return_false');