我如何计算从last_updated日期到Today日期的天数

时间:2019-08-06 09:57:26

标签: php mysql codeigniter codeigniter-3 codeigniter-2

我想显示从上次更新日期到今天的总天数,我想在我的视图文件中显示这些天数,请告诉我我在哪里记错了。 这是我的查看代码...

<li><?php echo $this->lang->line('member_since'); ?> : <span class="pull-right"><?php 
                                 $date1= date('Y-m-d',strtotime($customer['last_update']));
                                 $date2= date('Y-m-d',strtotime($customer['last_update']));
                                 $diff=date_diff($date1,$date2);
                                 if(empty($diff))
                                 {
                                     echo "0 Day";
                                 }
                                 else
                                 {
                                     echo $diff->format("%R%a days");
                                 }

                                ?></span></li>

4 个答案:

答案 0 :(得分:1)

$date1 = date('Y-m-d',strtotime($customer['last_update']));
$date2 = date('Y-m-d',strtotime($customer['last_update']));

您为$customer['last_update']$date1分配了相同的变量$date2

答案 1 :(得分:1)

将您的$ date2更改为今天的时间

    <li>
    <?php echo $this->lang->line('member_since'); ?> : <span class="pull-right"><?php 
                                     $date1= date('Y-m-d',strtotime($customer['last_update']));
                                     $today= date('Y-m-d');
                                     $diff=date_diff($date1,$today);
                                     if(empty($diff))
                                     {
                                         echo "0 Day";
                                     }
                                     else
                                     {
                                         echo $diff->format("%R%a days");
                                     }

                                    ?></span></li>

答案 2 :(得分:1)

尝试一下

  

您忘记在代码中与今天的日期进行比较

$date1= date('Y-m-d',strtotime($customer['last_update']));
$today= date('Y-m-d');
$diff=date_diff($today,$date1);
echo $diff->format("%R%a days");die;
  

date_diff成功返回一个DateInterval对象,该对象表示两个日期之间的差。失败则为假

答案 3 :(得分:1)

您可以使用以下查询直接在MySQL中进行操作:

SELECT DATEDIFF( now(), '2019-08-05' ) as days;

您可以传递列名(last_updated)而不是'2018-08-05'。

因此,您可以在从数据库中获取数据时执行此操作,而不是在PHP中完成该操作。