@jacosjmacos

Как правильно сделать проверку дат в Php?

Всем привет!
Есть вот такой код:
<?php
	$dateNow = date('d.m',strtotime( "today" )); //Сегодняшняя дата
	$dateStart = date('d.m',strtotime( 'monday this week' )); //дата начала недели
	$dateFinish = date('d.m',strtotime('sunday this week')); // дата конца недели
	$i = 1;
	$args = array(
		'posts_per_page' => -1,
		'cat' => 5,
		'order' => 'DESC'
	);

	$wp_query = new WP_Query($args);
	if($wp_query->have_posts()):
		while($wp_query->have_posts()): $wp_query->the_post(); ?>

		<?php 
			$datePost = get_field('manu_date'); //прозвольное поле записи с датой

			if($datePost > $dateNow && $datePost <= $dateFinish && $datePost >= $dateStart): ?>
				<li>
					<a href="#tabs-<?php echo $i ?>">
						<?php the_field('menu_day') ?>
						<br>
						<?php echo $datePost ?>						
					</a>
				</li>
			<?php
				$i++;
			endif; ?>
									
		<?php 
		endwhile;
	endif; ?>


В админке Wordpress есть записи, которые имеют произвольное поле с датой. Если сравнивать все записи по датам - там есть текущая неделя и следующая неделя. В данном коде необходимо вывести записи так, чтобы вывелись посты текущей недели, но при этом, чтобы первая запись начиналась с датой завтрашнего дня. (сегодняшний день и предыдущие дни текущей недели высвечиваться не должны).
Заранее спасибо!!!
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вы сравниваете строки, в которых день идет перед месяцем. т.е. второе ноября будет больше, чем первое декабря.
Если вы их поменяете местами, сделаете сперва месяц, а потом день - станет чуточку лучше, но сохранятся глюки под новый год, ибо декабрь станет больше чем январь.

Можно использовать формат ISO 8601 (Y-m-d). Тогда можно сравнивать в виде строки.
Можно не переводить в строку, а сравнивать time (там циферка с unix timestamp).
Или использовать что-то специализированное, типа date_diff.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы