簡體   English   中英

使用php,如何從數組中獲取即將到來的日期並將其傳遞給javascript?

[英]Using php, how should I get the upcoming date from an array and pass it to javascript?

我為WordPress設置了一個循環,該循環從自定義字段(日期選擇器)獲取日期並將其傳遞到數組。 我需要確定該數組中將來的最接近日期(即將到來的日期)。

<?php
  $today = current_time('m/d/Y');
  $args=array( 
    'meta_key' => 'opening', 
    'orderby' => 'meta_value', 
    'order' => 'ASC', 
    'posts_per_page' => -1, 
    'post_type' => 'event',
  ); 
  $query = new WP_Query($args); 
?>

<?php if($query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

<?php 
  $date = DateTime::createFromFormat('Ymd', get_field('opening')); 
  $dates[] = $date->format('m/d/Y');
  endwhile; endif; wp_reset_postdata();
  print_r($dates);
?>

並將其傳遞給javascript。

$('#tl').timeline({
  startItem  : '$resultOfUpcomingDateEvaluation',
});

請指教,謝謝您的時間。

找到了一個解決方案,有點臟,所以如果有人有一個更優雅的解決方案會很好。

我編寫了具有類似設置的第二個循環,將帖子限制為1,然后將meta_value與獲取current_time的var進行比較。 然后,我回顯將結果包裝在div中的結果,並用一個隱藏它的類(不是優雅的)將其包裝起來。

  <?php
    $today = current_time('Ymd');
    $args=array(
      'meta_key' => 'opening', 
      'orderby' => 'meta_value',
      'order' => 'ASC', 
      'posts_per_page' => 1, 
      'post_type' => 'event',      
      'meta_query' => array(
        'key' => 'opening',
        'compare' => '>=',
        'value' => $today,
      )
    ); 
  $query = new WP_Query($args); ?>

  <?php if($query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

  <?php 
    $date = DateTime::createFromFormat('Ymd', get_field('opening')); 
    $upcoming = $date->format('d/m/Y');

    endwhile; endif; wp_reset_postdata();

    echo '<div class="hide" id="upcomingdiv">';
    echo $upcoming;
    echo '</div>';
  ?>

之后,在我的javascript文件上,我通過ID獲取元素,並獲取包含循環結果的div的.textContent並將其存儲到變量中。

var setupUpcoming = document.getElementById("upcomingRef");
var upcoming = setupUpcoming.textContent;

最后,我將變量傳遞給startItem。

$('#tl').timeline({  
  startItem  : upcoming,
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM