WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

get_weekstartend() WP 0.71

Получает штамп времени (timestamp) начала и конца недели, к которой относится указанная дата.

Передаем в функцию дату в MySQL формате, а функция определяет неделю этой даты и вычисляет когда неделя началась и когда закончится. День начала недели можно указать во втором параметре.

✈ 1 раз = 0.000049с = очень быстро | 50000 раз = 0.33с = очень быстро PHP 7.1.2RC1, WP 4.7.3

Хуков нет.

Возвращает

Массив. Функция вернет массив с ключами start и end:

Array (
	[start] => 1488153600 // 2017 02 27 00:00:00
	[end]   => 1488758399 // 2017 03 05 23:59:59
)

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

get_weekstartend( $mysqlstring, $start_of_week );
$mysqlstring(строка) (обязательный)
Дата или Дата и время в MySQL формате, например: 2017-03-03 или 2017-03-03 15:08:08.
$start_of_week(число/строка)
День с которого начинается неделя: 1 - понедельник, 2 - вторник и т.д.
По умолчанию берется из опции get_option( 'start_of_week' ).
По умолчанию: ''

Примеры

#1 Получим время начала и конца недели

Демонстрация работы функции. Передадим в функцию дату 3 марта 2017 у которой неделя начинается с 27 фев а заканчивается 5 марта:

$arr = get_weekstartend('2017-03-03');

В результате $arr будет содержать такой массив

Array(
	[start] => 1488153600  // 2017-02-27 00:00:00 - понедельник
	[end]   => 1488758399  // 2017-03-05 23:59:59 - воскресенье
)

Код get weekstartend: wp-includes/functions.php WP 4.8.1

<?php
function get_weekstartend( $mysqlstring, $start_of_week = '' ) {
	// MySQL string year.
	$my = substr( $mysqlstring, 0, 4 );

	// MySQL string month.
	$mm = substr( $mysqlstring, 8, 2 );

	// MySQL string day.
	$md = substr( $mysqlstring, 5, 2 );

	// The timestamp for MySQL string day.
	$day = mktime( 0, 0, 0, $md, $mm, $my );

	// The day of the week from the timestamp.
	$weekday = date( 'w', $day );

	if ( !is_numeric($start_of_week) )
		$start_of_week = get_option( 'start_of_week' );

	if ( $weekday < $start_of_week )
		$weekday += 7;

	// The most recent week start day on or before $day.
	$start = $day - DAY_IN_SECONDS * ( $weekday - $start_of_week );

	// $start + 1 week - 1 second.
	$end = $start + WEEK_IN_SECONDS - 1;
	return compact( 'start', 'end' );
}

Cвязанные функции

Из метки: date time (дата время)

Еще из раздела: Дата/время

get_weekstartend Комментариев нет

Здравствуйте, !

Ваш комментарий