【发布时间】:2023-03-03 15:06:02
【问题描述】:
我试图获取从第一个日期到第二个日期的天数,然后从第二个日期到第三个日期等等。 我有一个这样的数组
$dates = array(
2016 - 02 - 01,
2016 - 03 - 01,
2016 - 04 - 01,
2016 - 05 - 01,
2016 - 06 - 01,
2016 - 07 - 01,
2016 - 09 - 01,
2016 - 11 - 01,
2016 - 12 - 01,
2017 - 01 - 01,
2017 - 12 - 01
);
我想获取从 2016-02-01 到 2016-03-01 的天数,然后从 2016-03-01 到 2016-04-01 等等,如果您发现它们中的日期确实跳跃了1个多月。 我希望它在这样的数组中
array()(
[0] => 0,
[1] => 30,
[2] => 60
//so on ...
)
这就是我的做法,但我遇到了uninitialized string offset 之类的错误,我想我的做法很可能是错误的
public function rangeDates()
{
$dates = array(
'2016-02-01',
'2016-03-01',
'2016-04-01',
'2016-05-01',
'2016-06-01',
'2016-07-01',
'2016-09-01',
'2016-11-01',
'2016-12-01',
'2017-01-01',
'2017-12-01'
);
$datez = array();
$index = 0;
$indexone = 1;
foreach($dates as $date)
{
$datez = round(abs(strtotime($date[$index]) - strtotime($date[$indexone])) / 86400);
$index++;
$indexone++;
}
echo $datez;
}
日期是 string 格式,我忘记提及的额外信息是需要添加天数,例如如果我们只计算年份
array(11) (
[0] => (int) 0
[1] => (int) 365
[2] => (int) 730
[3] => (int) 1095
[4] => (int) 1460
[5] => (int) 1825
[6] => (int) 2190
[7] => (int) 2555
[8] => (int) 2920
[9] => (int) 3285
[10] => (int) 3650
【问题讨论】:
-
请检查this,让我知道您是否可以。只有第一部分是关于你所需要的。 如果你不明白,我可以为你解答。
-
@FrayneKonok 对不起,我想我没有正确提及它或者很难理解,但我想要的是不同之处,但随后被添加到下个月,所以基本上 0 , 30 , 60, 90 ,所以它就像前几天被添加到接下来的几天。希望我说得通
-
@Anant 对不起,我想我没有正确提及它或者它很难理解,但我想要的是差异,但随后被添加到下个月,所以基本上 0 , 30 , 60, 90 ,所以它就像前几天被添加到接下来的几天。希望我说得通
-
@MasnadNihit,如果我在您的尝试中发表评论,那么有几点需要注意$datez =,您将其初始化为数组并像字符串一样使用最后你回应它。