Php 在循环中给给定日期加上3个月
嗨,我有以下日期=2015-06-01 00:00:00 所以我必须在这个日期加上3个月,所以写下面的代码Php 在循环中给给定日期加上3个月,php,Php,嗨,我有以下日期=2015-06-01 00:00:00 所以我必须在这个日期加上3个月,所以写下面的代码 $sarting="2015-06-01 00:00:00"; $date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") ); And i get the output = 2015-09-01; $store_date=array(); for($i=0;$i<20;$i++){ $store_d
$sarting="2015-06-01 00:00:00";
$date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
And i get the output = 2015-09-01;
$store_date=array();
for($i=0;$i<20;$i++){
$store_date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
}
但现在我想一次又一次地添加3个月,每次添加20次,并且我必须将输出存储到数组中
因此,我编写以下代码
$sarting="2015-06-01 00:00:00";
$date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
And i get the output = 2015-09-01;
$store_date=array();
for($i=0;$i<20;$i++){
$store_date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
}
但它返回2015-09-01 20次。我需要像这样的2015-09-01、2015-12-012016-06-01等等
请检查您没有更改$sarting的值。试试这个:
$sarting = "2015-06-01 00:00:00";
$store_date = array();
for ($i = 0; $i < 20; $i++) {
$sarting = $store_date[$i] = date('Y-m-d', strtotime($sarting . "+3 months"));
}
您没有更改$sarting的值。试试这个:
$sarting = "2015-06-01 00:00:00";
$store_date = array();
for ($i = 0; $i < 20; $i++) {
$sarting = $store_date[$i] = date('Y-m-d', strtotime($sarting . "+3 months"));
}
如果有帮助,试试这个检查
$sarting="2015-06-01 00:00:00";
$store_date=array();
for($i=0;$i<20;$i++){
$store_date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
$sarting=$store_date[$i];
}
echo "<pre>";
print_r($store_date);
echo "</pre>";
如果有帮助,试试这个检查
$sarting="2015-06-01 00:00:00";
$store_date=array();
for($i=0;$i<20;$i++){
$store_date[$i]=date('Y-m-d', strtotime($sarting . "+3 months") );
$sarting=$store_date[$i];
}
echo "<pre>";
print_r($store_date);
echo "</pre>";
我建议使用-类,这样我们就可以在每次迭代中重用相同的实例
<?php
$dateStamp = "2015-06-01 00:00:00";
$date = new DateTime($dateStamp);
$datesArr = [];
for ($i=1; $i<21 ; $i++) {
$date->modify('+3 month');
$datesArr[] = $date->format('Y-m-d h:i:s');
}
echo '<pre>';
print_r($datesArr);
echo '</pre>';
因为我们正在恢复同一个对象,所以每次迭代都会增加3个月。不需要任何计算或任何东西,使代码干净易读
演示:我建议使用-class,这样我们可以在每次迭代中重用相同的实例
<?php
$dateStamp = "2015-06-01 00:00:00";
$date = new DateTime($dateStamp);
$datesArr = [];
for ($i=1; $i<21 ; $i++) {
$date->modify('+3 month');
$datesArr[] = $date->format('Y-m-d h:i:s');
}
echo '<pre>';
print_r($datesArr);
echo '</pre>';
因为我们正在恢复同一个对象,所以每次迭代都会增加3个月。不需要任何计算或任何东西,使代码干净易读
演示:您可以使用PHP的class'modify方法在循环中添加+3个月
Array
(
[0] => 2015-09-01 12:00:00
[1] => 2015-12-01 12:00:00
[2] => 2016-03-01 12:00:00
[3] => 2016-06-01 12:00:00
[4] => 2016-09-01 12:00:00
[5] => 2016-12-01 12:00:00
[6] => 2017-03-01 12:00:00
[7] => 2017-06-01 12:00:00
[8] => 2017-09-01 12:00:00
[9] => 2017-12-01 12:00:00
[10] => 2018-03-01 12:00:00
[11] => 2018-06-01 12:00:00
[12] => 2018-09-01 12:00:00
[13] => 2018-12-01 12:00:00
[14] => 2019-03-01 12:00:00
[15] => 2019-06-01 12:00:00
[16] => 2019-09-01 12:00:00
[17] => 2019-12-01 12:00:00
[18] => 2020-03-01 12:00:00
[19] => 2020-06-01 12:00:00
)
您可以使用PHP类的modify方法在循环中添加+3个月
Array
(
[0] => 2015-09-01 12:00:00
[1] => 2015-12-01 12:00:00
[2] => 2016-03-01 12:00:00
[3] => 2016-06-01 12:00:00
[4] => 2016-09-01 12:00:00
[5] => 2016-12-01 12:00:00
[6] => 2017-03-01 12:00:00
[7] => 2017-06-01 12:00:00
[8] => 2017-09-01 12:00:00
[9] => 2017-12-01 12:00:00
[10] => 2018-03-01 12:00:00
[11] => 2018-06-01 12:00:00
[12] => 2018-09-01 12:00:00
[13] => 2018-12-01 12:00:00
[14] => 2019-03-01 12:00:00
[15] => 2019-06-01 12:00:00
[16] => 2019-09-01 12:00:00
[17] => 2019-12-01 12:00:00
[18] => 2020-03-01 12:00:00
[19] => 2020-06-01 12:00:00
)
以下代码用于从日期开始的年/月/日的加减 加法=日期'Y-m-d',标准时间+0年+3个月+0天,标准时间$lastdate 减法=日期'Y-m-d',标准时间+0年-3个月+0天,标准时间$lastdate
以下代码用于从日期开始的年/月/日的加减 加法=日期'Y-m-d',标准时间+0年+3个月+0天,标准时间$lastdate 减法=日期'Y-m-d',标准时间+0年-3个月+0天,标准时间$lastdate
为什么不使用碳?“但它会返回2015-09-01 20次”-当然会,因为在每个循环迭代中,在相同的开始日期上增加3个月。您要么需要修改$sarting,要么只需将+3部分动态化,如3*$i+1或类似的部分。是的。我忘了。这是真的为什么不使用碳?“但它会返回2015-09-01 20次”-当然会,因为在每个循环迭代中,在相同的开始日期上增加3个月。您要么需要修改$sarting,要么只需将+3部分动态化,如3*$i+1或类似的部分。是的。我忘了。这是真的,你能告诉我如何从这个3个月的$datesArr中得到6个月的数组吗?你的意思是说应该是6个月而不是3个月?是的。但是从生成的$datesArr可以告诉我如何从这个3个月的$datesArr中得到6个月的数组。你的意思是说它应该是6个月而不是3个月?是的。但是从生成的$datesArr@abilasher-那个问题对SO来说是离题的。@abilasher-那个问题对SO来说是离题的。