【问题标题】:Obtain Carbon difference between two dates in 15 minute increments以 15 分钟为增量获取两个日期之间的碳差
【发布时间】:2021-01-31 01:37:19
【问题描述】:

以下代码将以分钟为单位返回两个 Carbon 日期之间的差异:

$carbonNow = Carbon::now();
$diff = $carbonNow->diffInMinutes($someRandomFutureDateVariable);

这将返回一分钟的结果。但我试图以 15 分钟为增量来获得差异 - 例如结果中每 15 分钟增量的每个时间戳。伪代码是:

[
    '2020-10-15 12:45:00',
    '2020-10-15 13:00:00',
    '2020-10-15 13:15:00',
    '2020-10-15 13:30:00',
    ...
]

此外,我希望能够设置时差,因此如果我不想以 15 分钟为增量,我可以将任何增量作为我传递给我的函数的目标。我能够得到两个日期之间的差异,但每次增量都返回时间戳。

【问题讨论】:

  • 假设分钟差是 22。你想要的结果是 15,因为 15 只是从 22 中删除了 7,而 30 是删除了 8?
  • 将传入差异增量器。15 只是一个示例。

标签: php date datetime php-carbon


【解决方案1】:

carbon::diffInMinutes 传递分钟并删除秒。

给定分钟增量的分钟差可以很容易地计算如下:

$inc = 15;  //15 minutes

$carbonNow = Carbon::now();
$diff = $carbonNow->diffInMinutes($someRandomFutureDateVariable);

$diffInc = $diff - $diff%$inc;

【讨论】:

  • 您如何获得每个$inc 增量的时间戳?
  • 其次,我不确定您的代码示例是否有效。当我在本地运行测试时,$diff$diffInc 结果仅相差几位数。
  • diffInMinutes 以整数形式提供以分钟为单位的时间差。没有时间戳。您只能从日期/时间对象中获取时间戳。您的问题与您的伪代码相矛盾。你应该指定你想要的。
  • 或者您想将日期/时间调整到整整 15 分钟? 2020-10-16 19:58:23 -> 2020-10-16 19:45:00
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 2012-11-28
相关资源
最近更新 更多