【问题标题】:How to Calculate number of days between two dates in PHP and MYSQL如何在 PHP 和 MYSQL 中计算两个日期之间的天数
【发布时间】:2015-09-25 05:45:45
【问题描述】:

我需要计算两个日期之间的天数。 我输入的所需日期,在给定日期之前从数据库中获取记录。 如果数据库的“开始日期”为 2015 年 1 月 1 日,“结束日期”为 2015 年 2 月 5 日。 对于 1 月份,它应该返回 30 和 2 月 5 天。

我的桌子:

id  Name    Type    Project Place            Start Date              End Date                Details
1   Sai Local   Site    Bangalore   2015-09-03 11:32:47 2015-09-05 11:32:47 test                    
2   Ram Local   IGCAR   Chennai     2015-04-01 15:15:36 2015-04-09 15:15:36 Installation                    
3   Mani    Local   IGCAR   Chennai     2015-04-16 15:16:18 2015-05-21 15:16:18 Training

我的编码

///////////Employee Outstation(Travel) details/////////////
    $employeeTravel = new EmployeeTravelRecord();
    //date_start = '2015-04-01' ;
    //date_end   = '2015-04-30';

    $TravelEntryList = $employeeTravel->Find("(travel_date between ? and ? or  return_date between ? and ? )",array($req['date_start'], $req['date_end'],$req['date_start'], $req['date_end']));
    foreach($TravelEntryList as $Travelentry){

    $amount = (strtotime($Travelentry->return_date) - strtotime($Travelentry->travel_date));

                }   

对于第二条记录,它返回正确的值,但对于第三条记录,它计算包括五月。但我只想要 30 天的 4 月。

【问题讨论】:

  • 这是昨天的daysAgo visual,您可以在等待代码删除时查看

标签: php mysql


【解决方案1】:

DATEDIFF() 返回从一个日期到另一个日期的天数。

select *,datediff( end Date,  Start Date) as days from My table;

【讨论】:

    【解决方案2】:

    请看这篇文章,你应该找到你要找的东西:

    How to get the number of days of difference between two dates on mysql?

    【讨论】:

    • 在此,它计算数据库中同一月份的两个日期之间的天数。但在我的情况下,一条记录在开始日期和结束日期有 4 月和 5 月。那我如何才能仅在四月使用 DateDiff()。
    • 不确定您的意思:即使两个日期不在同一个月内,DateDiff() 也会起作用(示例select datediff('2011 -05-15', '2010-04-12'); 将返回 398 天)
    • 是的,其实我想知道5月份有多少天,('2011-05-15', '2010-04-12');这里在5月份,他不在了- 站 15 天和 4 月 19 天..我想计算这两个日期之间的每个月,每月有多少天。
    【解决方案3】:

    PHP 中有一个函数称为 date_diff,用于计算两个日期之间的差异。

    <?php
    $date1 = date_create("2013-03-15");
    $date2 = date_create("2013-12-12");
    $diff = date_diff($date1,$date2);
    echo $diff->format("%R%a days");
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多