*/ public function current_time() { return current_time( 'Y-m-d' ); } /** * Compare dates * * @param [type] $date_1 . * @param [type] $date_2 . * @param [type] $compare . * @author Jewel Theme */ public function date_compare( $date_1, $date_2 = null, $compare = null ) { if ( ! $compare ) { $compare = '=='; } if ( ! $date_2 ) { $date_2 = $this->current_time(); } if ( '<' === $compare ) { return strtotime( $date_1 ) < strtotime( $date_2 ); } elseif ( '>' === $compare ) { return strtotime( $date_1 ) > strtotime( $date_2 ); } elseif ( '<=' === $compare ) { return strtotime( $date_1 ) <= strtotime( $date_2 ); } elseif ( '>=' === $compare ) { return strtotime( $date_1 ) >= strtotime( $date_2 ); } else { return strtotime( $date_1 ) === strtotime( $date_2 ); } } /** * Date Diff * * @param [type] $date_1 . * @param [type] $date_2 . * * @author Jewel Theme */ public function date_diff( $date_1, $date_2 = null ) { if ( ! $date_2 ) { $date_2 = $this->current_time(); } $diff = date_diff( date_create( $date_2 ), date_create( $date_1 ) ); return $diff->format( '%R%a' ); } /** * Check Current date * * @param [type] $date_1 . * * @author Jewel Theme */ public function date_is_current( $date_1 ) { return $this->date_compare( $date_1 ); } /** * Check Prev date * * @param [type] $date_1 . * @param [type] $date_2 . * * @author Jewel Theme */ public function date_is_prev( $date_1, $date_2 = null ) { return $this->date_compare( $date_1, $date_2, '<' ); } /** * Check current or previous date * * @param [type] $date_1 . * @param [type] $date_2 . * * @author Jewel Theme */ public function date_is_current_or_prev( $date_1, $date_2 = null ) { return $this->date_compare( $date_1, $date_2, '<=' ); } /** * Date is next day * * @param [type] $date_1 . * @param [type] $date_2 . * * @author Jewel Theme */ public function date_is_next( $date_1, $date_2 = null ) { return $this->date_compare( $date_1, $date_2, '>' ); } /** * Current date or next date * * @param [type] $date_1 . * @param [type] $date_2 . * * @author Jewel Theme */ public function date_is_current_or_next( $date_1, $date_2 = null ) { return $this->date_compare( $date_1, $date_2, '>=' ); } /** * Date increament * * @param [type] $date . * @param [type] $days . * * @author Jewel Theme */ public function date_increment( $date, $days ) { return gmdate( 'Y-m-d', strtotime( $date . " + $days days" ) ); } }