php:WP循环中的DateTime

时间:2013-04-22 10:25:33

标签: php wordpress datetime

我在WP循环中使用DateTime函数,将一系列日期附加到每个帖子(开始日期到结束日期),然后可以使用jQuery日历过滤掉。唯一的问题是,每个帖子都有相同的日期,所有帖子都是第一篇帖子的日期,而不是自己的日期。
PHP:

<?php
$args = array(
    'post_type' => array( 'title01' ),
    'order' => 'asc',
    'orderby' => 'title',
    'posts_per_page' => -1
);

$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>

<a href="<?php the_permalink(); ?>">
<div class="grid-block-calendar" data-value="<?php $newBegin = DateTime::createFromFormat('dnY', get_field('title01_date_select'));
$newEnd = DateTime::createFromFormat('dnY', get_field('exhibition_date_end'));
$newEnd = $newEnd->modify( '+1 day' );

$newDaterange = new DatePeriod($newBegin, new DateInterval('P1D'), $newEnd);

foreach($newDaterange as $newDate){
    echo $newDate->format("jnY") . " ";
} ?>">
</div>
</a>

<?php endwhile; ?>

<?php wp_reset_query(); ?>

<?php
$args = array(
    'post_type' => array( 'title02' ),
    'order' => 'asc',
    'orderby' => 'title',
    'posts_per_page' => -1
);

$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>

<a href="<?php the_permalink(); ?>">
<div class="grid-block-calendar" data-value="<?php $begin = DateTime::createFromFormat('dnY', get_field('title02_date_select'));
$end = DateTime::createFromFormat('dnY', get_field('title02_date_end'));
$end = $end->modify( '+1 day' );

$daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);

foreach($daterange as $date){
    echo $date->format("jnY") . " ";
} ?>">
</div>
</a>

<?php endwhile; ?>

e.g。第一篇文章显示的日期范围介于2013年5月15日至2013年9月9日之间,而不是仅作为第一篇文章的日期范围,它会显示在所有帖子的data-value中,但每个帖子都有不同的开始日期和结束日期。

有没有理由我的所有帖子都在同一天?我知道这可能很简单,但我无法弄清问题是什么。

1 个答案:

答案 0 :(得分:0)

问题最可能是:get_field('title02_date_end')
如果你var_dump它里面是什么?

我建议像这样使用它:get_field('title02_date_end', get_the_ID())
看看var_dumping是否提供了其他东西。