Automattic\WooCommerce\Admin\API\Reports

TimeInterval::db_datetime_format()public staticWC 1.0

Returns date format to be used as grouping clause in SQL.

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

Хуков нет.

Возвращает

Разное.

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

$result = TimeInterval::db_datetime_format( $time_interval, $table_name, $date_column_name );
$time_interval(строка) (обязательный)
Time interval.
$table_name(строка) (обязательный)
Name of the db table relevant for the date constraint.
$date_column_name(строка)
Name of the date table column.
По умолчанию: 'date_created'

Код TimeInterval::db_datetime_format() WC 8.7.0

public static function db_datetime_format( $time_interval, $table_name, $date_column_name = 'date_created' ) {
	$first_day_of_week = absint( get_option( 'start_of_week' ) );

	if ( 1 === $first_day_of_week ) {
		// Week begins on Monday, ISO 8601.
		$week_format = "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%x-%v')";
	} else {
		// Week begins on day other than specified by ISO 8601, needs to be in sync with function simple_week_number.
		$week_format = "CONCAT(YEAR({$table_name}.`{$date_column_name}`), '-', LPAD( FLOOR( ( DAYOFYEAR({$table_name}.`{$date_column_name}`) + ( ( DATE_FORMAT(MAKEDATE(YEAR({$table_name}.`{$date_column_name}`),1), '%w') - $first_day_of_week + 7 ) % 7 ) - 1 ) / 7  ) + 1 , 2, '0'))";

	}

	// Whenever this is changed, double check method time_interval_id to make sure they are in sync.
	$mysql_date_format_mapping = array(
		'hour'    => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m-%d %H')",
		'day'     => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m-%d')",
		'week'    => $week_format,
		'month'   => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m')",
		'quarter' => "CONCAT(YEAR({$table_name}.`{$date_column_name}`), '-', QUARTER({$table_name}.`{$date_column_name}`))",
		'year'    => "YEAR({$table_name}.`{$date_column_name}`)",

	);

	return $mysql_date_format_mapping[ $time_interval ];
}