Automattic\WooCommerce\Admin\API\Reports
TimeInterval::next_quarter_start()
Returns a new DateTime object representing the next quarter start, or previous quarter end if reversed.
Method of the class: TimeInterval{}
No Hooks.
Return
DateTime
.
Usage
$result = TimeInterval::next_quarter_start( $datetime, $reversed );
- $datetime(DateTime) (required)
- Date and time.
- $reversed(true|false)
- Going backwards in time instead of forward.
Default: false
TimeInterval::next_quarter_start() TimeInterval::next quarter start code WC 9.6.1
public static function next_quarter_start( $datetime, $reversed = false ) { $year = $datetime->format( 'Y' ); $month = (int) $datetime->format( 'n' ); switch ( $month ) { case 1: case 2: case 3: if ( $reversed ) { $month = 1; } else { $month = 4; } break; case 4: case 5: case 6: if ( $reversed ) { $month = 4; } else { $month = 7; } break; case 7: case 8: case 9: if ( $reversed ) { $month = 7; } else { $month = 10; } break; case 10: case 11: case 12: if ( $reversed ) { $month = 10; } else { $month = 1; $year ++; } break; } $datetime = new \DateTime( "$year-$month-01 00:00:00", new \DateTimeZone( wc_timezone_string() ) ); if ( $reversed ) { $timestamp = (int) $datetime->format( 'U' ); $end_of_prev_month_timestamp = $timestamp - 1; $datetime->setTimestamp( $end_of_prev_month_timestamp ); } return $datetime; }