在帖子中显示正在进行的事件和当前事件的问题

时间:2021-04-11 作者:ananta raj khanal

我正在开发一个咨询网站,其中有事件。我正在使用ACF生成事件

首先,活动包括三件事,

我已经成功地为事件帖子生成了过去事件和未来事件,但我的问题是我正在为帖子添加一个功能区,以显示帖子是即将发布的还是正在发布的还是过去的还是当前的。

在代码中,我成功地生成了即将发生的事件和过去的事件,但无法在功能区中显示当前事件和正在发生的事件

缎带是这样的

enter image description here

我添加了以下代码来生成这些功能区

                        <div class="ribbon">
                                    <?php 
                                 

                                    $event_date = get_field(\'event_date\');

                                    $events_date = new DateTime($event_date);
                                    $event_timestamp = $events_date->getTimestamp();
                                    
                                    
                                     //echo 

                                     if( $event_timestamp <= time()){

                                        $ribbon = "Past Event";
                                       

                                     }else{
                                        $ribbon = "Upcoming Event";
                                       
                                     }

                                     ?>
                                      <span><?php echo $ribbon; ?></span>
                                  </div>
对于正在进行的事件和当前事件,可能需要在上面的代码中添加一些内容,但我无法理解。你们能帮我解决这个问题吗

Note 同样在今天,我的丝带显示了过去的事件,我不知道为什么它会显示这个**

我也研究了以下这些类型的堆栈溢出,但它们都不起作用:(https://stackoverflow.com/questions/25622370/php-how-to-check-if-a-date-is-today-yesterday-or-tomorrow

1 个回复
SO网友:ananta raj khanal

我想出来了,

But I have done soo many things that I don\'t know Is this a good approach or not also I want too simplify my process can anybody help me with this ??

Condition Meets

假设今天的日期是April 12 - 2021

4月9日至4月10日;4月9日至4月12日的过往事件;4月12日至4月18日期间正在进行的活动;4月15日至4月18日期间正在进行的活动;4月11日至4月11日即将举行的活动;4月8日至4月18日的过往事件;正在进行的事件

Code

<?php
              $event_start_date = get_field(\'event_date\'); //get event start date
              $event_end_date = strtotime(get_field(\'event_end_date\')); // convert event date to strtotime
              $current_date = date("Y-m-d H:i:s");
              $curr_date=strtotime($current_date); //get current date

                    $the_date=strtotime($event_start_date); //convert event start date to strtotime
                
                $diff=floor(($curr_date-$the_date)/(60*60*24)); //cal for diff between two strtotime - output on float ie float(-1) or float(1)


                $date_s = date_create($current_date); 


                $date_e = date_create(get_field(\'event_end_date\'));

                $difference_date = date_diff($date_s,$date_e); //get difference of two  dates result is shown on -1 day or 2 day

               
                $diff_days = $difference_date->format("%R%a"); // get the value of two difference date

if($event_end_date <  $curr_date  ){ // condition to check April-18 < April 12 

                  echo "Past Event";

                        if($diff == 0){ //condition to check April 12 == April 12
                      echo "Today Event";
                        

                        
                    } else if($diff_days == -0){ //condition to check date from April 11 - April  12
                       echo "Ongoing Event";
                       

                    }

                }elseif($diff > 1 && $diff > -1 || $diff == 0){ //condition to check date from April 12 - April 18 or April 9 - April 14
              
                   echo "Ongoing Event";
            
              
                }else{ // condtion to check the date above the current date
                  echo "Upcomming Event";
              
                  
                  
                } ?>

If Any one who can Simplify These codes will be great helpful

非常感谢。

相关推荐

WPDB: Update table

我目前正在开发我的第一个WordPress插件,目前对如何更改数据库中的记录有点困惑。到目前为止,我已经使用$wpdb::update()函数解决了这个问题:public function toggle_status() { global $wpdb; $id = (int) $_POST["id"]; $active = (int) $_POST["active"]; $tablename = $wp