【问题标题】:how to find number of days in PHP when from date and to date is same当从日期和到日期相同时如何在PHP中查找天数
【发布时间】:2020-04-03 10:12:02
【问题描述】:

我正在尝试使用 \DateTime::createFromFormat 在两个日期之间进行计算。

但我无法找到两个相同日期之间的差异。就像一天一样,它应该显示一天。 下面是我的代码。

    $fromDate = \DateTime::createFromFormat('M j, Y', $request->get('fromDateVal')); 
    $toDate = \DateTime::createFromFormat('M j, Y', $request->get('toDateVal')); 
    $diffdays = $toDate->diff($fromDate) ;

任何帮助都会有所帮助。

我收到了

    DateInterval {#7658
  interval: 0s
  +"y": 0
  +"m": 0
  +"d": 0
  +"h": 0
  +"i": 0
  +"s": 0
  +"f": 0.0
  +"weekday": 0
  +"weekday_behavior": 0
  +"first_last_day_of": 0
  +"invert": 0
  +"days": 0
  +"special_type": 0
  +"special_amount": 0
  +"have_weekday_relative": 0
  +"have_special_relative": 0
}

【问题讨论】:

  • “我无法找到两个相同日期之间的差异” - 可能是因为找不到日期是否相同?
  • 我知道差异会给出 0,当它为零时我想加 1。但这是给 dateinterval 对象。当我 +1 时,它会返回 false
  • 您可能想查看in the manual for diff() 以了解该方法实际返回的内容以及如何使用它

标签: php symfony-3.4 orocrm


【解决方案1】:

就做吧

if($fromDate == $toDate){
    $diffdays = 0;
}

我不知道这是不是你想要的。但是基本上加个条件,看是否一样,加上你想要的值。我加了 0,因为我认为这应该是区别。

【讨论】:

  • 如果 $fromdate == $todate 然后我想加 1,就像我想返回天数 1,
  • @AshishVC 这就是你想要的,在值相等时做某事?
  • @AshishVC if($fromDate == $toDate){ $diffdays = 1; }
【解决方案2】:

使用 DateTime::diff() 函数

DateTime::diff() 函数是 PHP 中的一个内置函数,用于返回两个给定 DateTime 对象之间的差异。

<?php

// Initialising the two datetime objects 

$datetime1 = new DateTime('2019-9-10'); 
$datetime2 = new DateTime('2019-9-15'); 

// Calling the diff() function on above 
$difference = $datetime1->diff($datetime2); 

// Getting the difference between two 
echo $difference->format('%R%a days'); 

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2021-04-11
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多