Automattic\WooCommerce\Admin\API\Reports

TimeInterval::next_week_start │ public static │ WC 1.0

Returns DateTime object representing the next week start, or previous week end if reversed.

The next week start is the first day of the next week at 00:00:00. The previous week end is the last day of the previous week at 23:59:59. The start day is determined by the "start_of_week" wp_option.

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

Хуков нет.

Возвращает

DateTime.

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

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

Код TimeInterval::next_week_start() WC 11.2.2

public static function next_week_start( $datetime, $reversed = false ) {
	$seven_days = new \DateInterval( 'P7D' );
	// Default timezone set in wp-settings.php.
	$default_timezone = date_default_timezone_get();
	// Timezone that the WP site uses in Settings > General.
	$original_timezone = $datetime->getTimezone();
	// @codingStandardsIgnoreStart
	date_default_timezone_set( 'UTC' );
	$start_end_timestamp  = get_weekstartend( $datetime->format( 'Y-m-d' ) );
	date_default_timezone_set( $default_timezone );
	// @codingStandardsIgnoreEnd
	if ( $reversed ) {
		$result = \DateTime::createFromFormat( 'U', $start_end_timestamp['end'] )->sub( $seven_days );
	} else {
		$result = \DateTime::createFromFormat( 'U', $start_end_timestamp['start'] )->add( $seven_days );
	}
	return \DateTime::createFromFormat( 'Y-m-d H:i:s', $result->format( 'Y-m-d H:i:s' ), $original_timezone );
}