get_weekstartend() WP 0.71

Отримує штамп часу (timestamp) початку та кінця тижня, до якого належить зазначена дата.

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

1 раз – 0.000049 сек
(дуже швидко) | 50000 разів – 0.33 сек
(дуже швидко) |
PHP 7.1.2RC1, WP 4.7.3

Хуків немає.

Повертає

int[]. Функція поверне масив із ключами 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' ).


За замовчуванням: ”

Приклади

0

#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 - неділя
)

список змін

З версії 0.71Введено.

Код get_weekstartend() WP 6.0.2

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 = gmdate( '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');
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *