Inventory_Presser_Business_Day
Source Source
File: includes/class-business-day.php
class Inventory_Presser_Business_Day { public $weekday; // 0 - 6 public $open_hour; // 0 - 23 public $open_minute; // 0 - 59 public $close_hour; // 0 - 23 public $close_minute; // 0 - 59 /** * Initializes all member variables to 0 * * @return void */ public function __construct() { $this->weekday = 0; $this->open_hour = 0; $this->close_hour = 0; $this->open_minute = 0; $this->close_minute = 0; } /** * close_string * * @return void */ public function close_string() { return $this->time_string( $this->close_hour, $this->close_minute ); } /** * Use WordPress current_time() to create a DateTime object * * @return void */ private function current_datetime() { return new DateTime( gmdate( DATE_RFC2822, current_time( 'timestamp' ) ) ); } /** * Is this day tomorrow? * * @return bool */ public function is_tomorrow() { $tomorrow = $this->current_datetime(); $tomorrow->add( new DateInterval( 'P1D' ) ); return $this->weekday === $tomorrow->format( 'w' ); } /** * Does this day have any open hours? * * @return bool */ public function open_in_some_fashion() { return ( 0 !== $this->close_hour && $this->open_hour < $this->close_hour ); } /** * Is the business open later today even though it's closed now? * * @return bool */ public function open_later_today() { $now = $this->current_datetime(); $today_open_date = $this->current_datetime(); $today_open_date->setTime( $this->open_hour, $this->open_minute, 0 ); return null !== $today_open_date && $now < $today_open_date; } /** * Is the business open right now? * * @return bool */ public function open_right_now() { $now = $this->current_datetime(); $today_open_date = $this->current_datetime(); $today_open_date->setTime( $this->open_hour, $this->open_minute, 0 ); $today_close_date = $this->current_datetime(); $today_close_date->setTime( $this->close_hour, $this->close_minute, 0 ); return null !== $today_open_date && $now >= $today_open_date && $now < $today_close_date; } /** * A string that describes when the business opens on this day * * @return string */ public function open_string() { return $this->time_string( $this->open_hour, $this->open_minute ); } /** * If the business is open at all on this day, what is that opening time in * a human-friendly format? * * @param int $hour * @param int $minute * @return string */ protected function time_string( $hour, $minute ) { if ( ! $this->open_in_some_fashion() ) { return ''; } // 9:30:00 $time_string = (string) ( $hour ) . ':' . (string) ( $minute ) . ':00'; return ( gmdate( 'g:i a', strtotime( $time_string ) ) ); } }
Expand full source codeCollapse full source codeView on Github
Methods Methods
- __construct — Initializes all member variables to 0
- close_string — close_string
- current_datetime — Use WordPress current_time() to create a DateTime object
- is_tomorrow — Is this day tomorrow?
- open_in_some_fashion — Does this day have any open hours?
- open_later_today — Is the business open later today even though it’s closed now?
- open_right_now — Is the business open right now?
- open_string — A string that describes when the business opens on this day
- time_string — If the business is open at all on this day, what is that opening time in a human-friendly format?