数组中的下一个两个日期


Next two dates from array

我的Wordpress主题允许将日期添加到"事件"自定义帖子类型中。股票主题显示输入的所有日期,但我限制为两个日期。不幸的是,这是所选事件的前两个日期,而不是接下来的两个日期。

所以随着一年的过去,我希望 php 查看当前日期,然后显示即将发生的事件......即数组中的下一个两个事件日期。

这是我的代码:

<div id="event-days">
        <ul>
        <?php
        global $va_locale;
        $days = va_get_the_event_days();
        $i = 0;
        $len = count($days);
        foreach( $days as $date_U => $term ) { ?>
            <?php $date = $term->slug; ?>
            <?php $display_date = $va_locale->date( apply_filters( 'va_single_event_dates_date_format', get_option( 'date_format' ) ), strtotime( $date ) );?>
            <?php $times = va_get_the_event_day_times( $date ); ?>
            <li><?php echo html_link( va_event_day_get_term_link( date( 'Y-m-d', strtotime( $date ) ) ), $display_date ); ?><?php echo va_get_the_event_day_time( $times, ' - ', ' @ ' );
            if ($i == 0) { ?>
                <meta itemprop="startDate" content="<?php echo date( 'c', strtotime( $date ) ); ?>" />
            <?php } ?>
            </li>
        <?php $i++; 
        if($i==2) break;
        } ?>
        </ul>
    </div>

提前感谢您的帮助。

编辑 - 我们去加夫列尔。 干杯

function va_get_the_event_days( $event_id = 0 ) {
    $event_id = $event_id ? $event_id : get_the_ID();
    $terms = get_the_terms( $event_id, VA_EVENT_DAY );
    if ( !$terms )
        return array();
    $days = array();
    foreach ( $terms as $term_id => $term ) {
        if ( $term->parent != 0 ) {
            $days[ strtotime($term->slug) ] = $term;
        }
    }
    return $days;
}

最简单的更改是仅将未来事件添加到数组中:

$now = time();
foreach ( $terms as $term_id => $term ) {
    if ( $term->parent != 0 ) {
        $term_timestamp = strtotime($term->slug);
        if ($term_timestamp > $now) {
            $days[ $term_timestamp ] = $term;
        }
    }
}