Automattic\WooCommerce\Admin\API\Reports

TimeInterval::next_month_start()public staticWC 1.0

Returns a new DateTime object representing the next month start, or previous month end if reversed.

Метод класса: TimeInterval{}

Хуков нет.

Возвращает

DateTime.

Использование

$result = TimeInterval::next_month_start( $datetime, $reversed );
$datetime(DateTime) (обязательный)
Date and time.
$reversed(true|false)
Going backwards in time instead of forward.
По умолчанию: false

Код TimeInterval::next_month_start() WC 8.7.0

public static function next_month_start( $datetime, $reversed = false ) {
	$month_increment = 1;
	$year            = $datetime->format( 'Y' );
	$month           = (int) $datetime->format( 'm' );

	if ( $reversed ) {
		$beg_of_month_datetime       = new \DateTime( "$year-$month-01 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
		$timestamp                   = (int) $beg_of_month_datetime->format( 'U' );
		$end_of_prev_month_timestamp = $timestamp - 1;
		$datetime->setTimestamp( $end_of_prev_month_timestamp );
	} else {
		$month += $month_increment;
		if ( $month > 12 ) {
			$month = 1;
			$year ++;
		}
		$day      = '01';
		$datetime = new \DateTime( "$year-$month-$day 00:00:00", new \DateTimeZone( wc_timezone_string() ) );
	}

	return $datetime;
}