微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

StartDate - EndDate 与 EndDate - StartDate 在 Carbon 中相同

如何解决StartDate - EndDate 与 EndDate - StartDate 在 Carbon 中相同

一般情况

$a = 100;
$b = 150;
/*  
    Output of $a - $b = (100 – 150) = -50 (Negative value)
    Output of $b - $a = (150 – 100) = 50 (Positive value)
*/

我正在尝试使用 Carbon 获取两个日期之间的差异,如下所示......

$start = Carbon::Now(); 
$end = $start->copy()->addMinute(2);
echo $start->diffInSeconds($end); /* output is 120 */
echo $end->diffInSeconds($start); /* output is 120 */

问题是为什么 diffInSeconds 在两种情况下都返回相同的值? 可能是我在这里遗漏了什么。

以及实现正确值的正确方法应该是什么。

请帮助我理解这一点。

解决方法

来自the Carbon docs

下面的每个函数都有一个默认的第一个参数,即 Carbon 要比较的实例,如果您想使用 now(),则为 null。第二届 参数再次是可选的,并指示是否需要返回值 是绝对值或相对值,可能具有 - (负)如果传入的日期小于当前的符号 实例。这将默认为 true,返回绝对值。

因此要获得负值(在适当的情况下),请将可选的第二个参数设置为 false

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?