【问题标题】:PHP - Get number of days from start-end datesPHP - 从开始日期获取天数
【发布时间】:2015-04-22 08:47:13
【问题描述】:

案例一:

$start_date = 01-Mar-15
$end_date = 31-Apr-15

获取开始-结束日期的天数。这两个日期都是31 days

案例一:

$start_date = 16-Mar-15
$end_date = 15-Apr-15

这里不会相同,因此请获取 start_date 的天数,即 30 days

如何根据上述用例执行以下条件:

if($start_date_month_days == $end_date_month_days){
//do something with 31 dates
}else{
//do something with number of days for $start_date month
}

附: : 我不是在寻找两个日期之间的天数。但是要获取特定 start-end 日期的天数。冷日期在相同/不同的月份

【问题讨论】:

  • 请说的更清楚些。您是否在寻找这两个日期之间的天数?
  • 您可以使用 PHP 内置的 DateTimeCarbon 扩展吗?
  • @treegarden,我不是在寻找两个日期之间的天数。只是为了获取特定 start-end 日期的天数。冷日期在相同/不同月份
  • 已经在 SO 中提出了很多与此类似的问题,因此值得进行搜索。你会发现 PHP 内置 DateInterval 很有用:php.net/manual/en/class.dateinterval.php 编辑:顺便说一句,我不是反对者
  • "获取特定开始结束日期的天数" – 我不知道这是什么意思。我不知道 3 月 1 日和 4 月 31 日在 31 天内的结果如何。

标签: php date


【解决方案1】:
  $start_date = "01-Mar-15";
    $end_date = "31-Apr-15";

    $date1 = new DateTime(date("Y-m-d",strtotime($start_date)));
    $date2 = new DateTime(date("Y-m-d",strtotime($end_date)));
    $interval = $date1->diff($date2);

    echo "".$interval->d." days";

if($interval->d=="31"){
//do something
}
else{
}

试试这个代码

【讨论】:

  • 通常这是朝着正确的方向发展,但这段代码有很多错误。
  • 您实例化DateTime 的方式仍然存在问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多