wp_checkdate() WP 3.5.0

Перевіряє коректність дати за григоріанським календарем.

Ця обгортка для функції PHP checkdate() .

1 раз – 0.00002 сек
(дуже швидко) | 50000 разів – 0.10 сек
(швидкість світла)

Хуки з функції

Повертає

true|false. Логічний. true якщо дата є валідною, false інакше.

Використання

if( wp_checkdate( $month, $day, $year, $source_date ) ){
	// перевірка пройдена, робимо щось
}
$month
(число) (обов’язковий)
Номер місяця (1-12).
$day
(число) (обов’язковий)
Номер Дня (1-31).
$year
(число) (обов’язковий)
Рік.
$source_date
(рядок) (обов’язковий)
Вихідна дата у якій перевіряються зазначені раніше рік/місяць/день. Вказується для передачі у фільтр. Наприклад
2008-10-24

Приклади

0

#1 Приклад із ядра WordPress

/*
 * Якщо дата не встановлена ​​( новий пост або чернетка )
 * якщо не чернетка або дата змінилася в процесі написання.
 */
if ( empty( $postarr['post_date'] ) || '0000-00-00 00:00:00' == $postarr['post_date'] ) {
	$post_date = current_time( 'mysql');
}
else {
	$post_date = $postarr['post_date'];
}

// Валідація дати.
$ mm = substr ($ post_date, 5, 2);
$ jj = substr ($ post_date, 8, 2);
$ aa = substr ($ post_date, 0, 4);
$valid_date = wp_checkdate($mm, $jj, $aa, $post_date);

if (! $valid_date) {
	if ( $wp_error ) {
		//Вказана дата некоректна.
		return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
	}
	else {
		return 0;
	}
}
0

#2 Ще один приклад з ядра WordPress

if ( get_query_var( 'day' ) && get_query_var( 'monthnum' ) && get_query_var( 'year' ) ) {
	$year = get_query_var( 'year' );
	$month = get_query_var( 'monthnum');
	$ day = get_query_var ( 'day');
	$date = sprintf( '%04d-%02d-%02d', $year, $month, $day);
	if ( ! wp_checkdate( $month, $day, $year, $date ) ) {
		$ redirect_url = get_month_link ($ year, $ month);
	}
}

список змін

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

Код wp_checkdate() WP 6.0.2

function wp_checkdate( $month, $day, $year, $source_date ) {
	/**
	 * Filters whether given date is valid for the Gregorian calendar.
	 *
	 * @ Since 3.5.0
	 *
	 * @param bool $checkdate Коли ви маєте дійсний термін.
	 * @param string $source_date Date to check.
	 */
	return apply_filters( 'wp_checkdate', checkdate( $month, $day, $year ), $source_date );
}

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

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