【问题标题】:help with php dates and loops帮助 php 日期和循环
【发布时间】:2010-07-23 09:34:53
【问题描述】:

您好,我目前有这个 PHP 脚本

        <?php if($purchase_dates != FALSE){?>
                        <?php foreach($purchase_dates as $id=>$outer_value) { ?>
                        <!-- Output the date here -->
                          <!-- Start Purchase table -->
                          <?
                          $date = strtotime($outer_value['date_purchased']);
                          $data = date('F jS Y', $date);
                          ?>

                          <h3></h3>
                          <!-- Start inner loop -->
                          <?php foreach($purchases as $id=>$inner_value) { ?>
                           <?php if($inner_value['date_purchased'] == $outer_value['date_purchased']) { ?>
                                <div class="row"> 
                                    <ul> 
                                        <li class="id"><a href="/search/cv/<?=$inner_value['code'];?>"><?=$inner_value['code'];?></a></li> 
                                        <li class="name"><a href="/search/cv/<?=$inner_value['code'];?>"><?=$inner_value['firstname'];?> <?=$inner_value['surname'];?></a></li>
                                        <li class="download"><a href="">Download PDF</a></li>
                                        <div class="disp"> 
                                            <li class="location"><?=$inner_value['city'];?></li> 
                                            <li class="status"><?=$job_status[$inner_value['job_status']];?></li> 
                                            <li class="education"><?=$education_types[$inner_value['education_level']]['nice_name'];?></li>
                                            <li class="role">
                                                <?php
                                                $out = array();
                                                if($inner_value['is_contract'] == 'Y') $out[]="Contract";
                                                if($inner_value['is_permanent'] == 'Y') $out[]="Permanent";
                                                if($inner_value['is_temporary'] == 'Y') $out[]="Temporary";
                                                echo implode(", ",$out);
                                                ?>
                                            </li> 

                            <li class="salary"><?=$salaries[$inner_value['expected_salary_level']]['nice_name'];?></li> 
                                        </div>
                                    </ul> 
                                </div>
                           <?php  } ?>
                          <?php  } ?>
                          <!-- End inner loop -->
                        <?php } ?>
                        <?php }?>
                        <!-- End Outer Tree Loop -->

这会生成类似这样的东西,

7 月 22 日
购买1

7 月 22 日
购买 2

7 月 18 日
购买 3

7 月 18 日
购买 4

我的问题是,我想将该日期下的所有购买分组,如果该日期是今天,我想用“今天购买”替换“7 月 23 日”

我已经在我的 SQL 中使用 groupby

【问题讨论】:

    标签: php string date loops foreach


    【解决方案1】:

    按日期分组的最简单方法是向数组添加一个额外的维度,因此属于同一日期的所有条目都在同一个子数组中。然后你只需要循环两次:

    foreach($data as $purchase_date => $purchases){
        // Print date
        foreach($purchases as $id=>$inner_value){
            // Print purchase
        }
    }
    

    您似乎使用 Unix 时间戳作为日期,因此您可以简单地使用 date() 去除小时、分钟和秒:

    if( date('Y-m-d')==date('Y-m-d', $purcharse_date) ){
        // Today
    }
    

    【讨论】:

    • 对不起,我没有遵循那个答案,你能把它应用到我的代码中吗?
    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多