Php 在两个小时之间检查迭代的最佳方法是什么?

Php 在两个小时之间检查迭代的最佳方法是什么?,php,datetime,Php,Datetime,我想检查一下迭代是如何在间隔30分钟的两个日期之间进行的 例如,我有: $one = new DateTime('2012-01-20 06:00'); $two = new DateTime('2012-01-20 17:30'); $first = $one->format('H:i'); $second = $two->format('H:i'); $interval = 30; 在本例中,$iteration=23,但我如何计算呢?将日期时间之间的分钟数除以所需的间隔 $

我想检查一下迭代是如何在间隔30分钟的两个日期之间进行的

例如,我有:

$one = new DateTime('2012-01-20 06:00');
$two = new DateTime('2012-01-20 17:30');

$first = $one->format('H:i');
$second = $two->format('H:i');
$interval = 30;

在本例中,$iteration=23,但我如何计算呢?

将日期时间之间的分钟数除以所需的间隔

$one = strtotime('2012-01-20 06:00');
$two = strtotime('2012-01-20 17:30');
$interval = 30;

echo round(($two - $one) / ($interval * 60));
我走了一条捷径,在30分钟内将秒数除以秒数


您可以使用所需的时间间隔来划分日期时间之间的分钟数

$one = strtotime('2012-01-20 06:00');
$two = strtotime('2012-01-20 17:30');
$interval = 30;

echo round(($two - $one) / ($interval * 60));
我走了一条捷径,在30分钟内将秒数除以秒数


你最好还是用它,这只是自1970年1月1日以来的秒数

$now = date("U");
// In half an hour:
$future = $now + (30 * 60);
//          (minutes * seconds in a minute)

$diff = $now - $future;

echo ($diff / 60);
// returns 30

你最好还是用它,这只是自1970年1月1日以来的秒数

$now = date("U");
// In half an hour:
$future = $now + (30 * 60);
//          (minutes * seconds in a minute)

$diff = $now - $future;

echo ($diff / 60);
// returns 30

这本质上与相同,但使用DateTime类与您所做的相同

$1=新日期时间'2012-01-20 06:00'; $2=新日期时间'2012-01-20 17:30'; $first=$one->getTimestamp; $second=$two->getTimestamp; $interval=30; 回声轮$second-$first/$interval*60;
这本质上与相同,但使用DateTime类与您所做的相同

$1=新日期时间'2012-01-20 06:00'; $2=新日期时间'2012-01-20 17:30'; $first=$one->getTimestamp; $second=$two->getTimestamp; $interval=30; 回声轮$second-$first/$interval*60;
您可以创建一个DatePeriod并对其使用count。使用SO Search for DatePeriod了解如何创建一个DatePeriod并使用count。使用SO Search for DatePeriod了解如何使用。可能重复哦抱歉,我不知道你知道他正在进行的项目的所有信息。你可能不会相信,我知道这可能是CNN材料,非常令人兴奋,但是-他指定了两个DateTime对象,而且你也不会相信这个日期时间实际上考虑了DST!我知道,听起来难以置信,有人真的指定了他们使用的是什么,然后你又提供了一段实际上不起作用的代码,并且使用了原始规范中没有的更糟糕的机制!但是,嘿,这并不是你的错,只是在发布之前读了一些书,我知道这一定很难做到。你不知道他为什么使用一个对象,或者它有什么用途。也许他正在使用jQuery,结果发现发送一个Unix epoch会更容易,或者也许他只是想知道其中的区别,这样他就可以把它们整理好,或者发送到MySQL。我不知道,你也不知道。重点是我提出了一个建议,从“你可能……”开始。他可以决定自己是否过得更好。你的评论既粗鲁又没有必要。我花了一天的时间提出了一个建议,至少还有一个人认为这是个好主意。我不明白你的建议。已经发布了一个适当的解决方案,因此我不必发布。你的解决方案不好,你投资的时间也无关紧要——它是错误的。您的代码段不起作用,它使用了错误的方法来处理日期。我们可以整天争论谁粗鲁谁不粗鲁,但事实是,使用代码并不能解决问题,因为出发点是错误的。此外,没有人必须猜测处理日期所用的是什么,因为DateTime对象——它发布了所用的内容。只需在发布解决方案之前阅读,就可以了。如果你不是那么粗鲁和直率,那将是一个公平的评论。冷静点,伙计,我们都是来帮助别人的。哦,对不起,我不知道你知道他正在做的项目的一切。你可能不会相信,我知道这可能是CNN的材料,它是如此令人兴奋,但是-他指定了两个DateTime对象,你也不会相信-DateTime实际上考虑了DST!我知道,听起来难以置信,有人真的指定了他们使用的是什么,然后你又提供了一段实际上不起作用的代码,并且使用了原始规范中没有的更糟糕的机制!但是,嘿,这并不是你的错,只是在发布之前读了一些书,我知道这一定很难做到。你不知道他为什么使用一个对象,或者它有什么用途。也许他正在使用jQuery,结果发现发送一个Unix epoch会更容易,或者也许他只是想知道其中的区别,这样他就可以把它们整理好,或者发送到MySQL。我不知道,你也不知道。重点是我提出了一个建议,从“你可能……”开始。他可以决定自己是否过得更好。你的评论既粗鲁又没有必要。我花了一天的时间提出了一个建议,至少还有一个人认为这是个好主意。我不明白你的建议。已经发布了一个适当的解决方案,因此我不必发布。你的解决方案不好,你投资的时间也无关紧要——它是错误的。您的代码段不起作用,它使用了错误的方法来处理日期。我们可以整天争论谁是粗鲁的,谁不是,但事实仍然是使用你的鳕鱼
e不能解决问题,因为起点是错误的。此外,没有人必须猜测处理日期所用的是什么,因为DateTime对象——它发布了所用的内容。只需在发布解决方案之前阅读,就可以了。如果你不是那么粗鲁和直率,那将是一个公平的评论。冷静点,伙计,我们都是来帮助别人的。