gpt4 book ai didi

PHP。如何获得每两个月重复一次的事件?

转载 作者:可可西里 更新时间:2023-11-01 13:09:33 25 4
gpt4 key购买 nike

我尝试了很多方法,但后来我卡在了一半。

假设订单是今天创建的。我需要显示下一个重复订单何时发生。所以我在 2012 年 6 月 13 日创建了订单。然后我将计划设置为每一个月 1 日的双月重复订单。如何计算下一个循环订单何时发生?答案是 8 月 1 日。

如果有人可以概述一种方法,那将非常有用,它不一定是代码。这是我目前所拥有的...

    // first, get starting date
$start_date_month = date('m', strtotime($start_date));

// get this year
$this_year = date('Y');

// if this month is december, next month is january
$this_month = date('m', $timestamp_month);
if($this_month == 12){
$next_month = 1;
// if this month is not december add 1 to get next month
}else{
$next_month = $this_month + 1;
}

// get array of months where recurring orders will happen
$months = array();
for ($i=1; $i<=6; $i++) {
$add_month = $start_date_month+(2*$i); // 2, 4, 6, 8, 10, 12
if($add_month == 13){$add_month = 1;$year = $this_year+1;}
elseif($add_month == 14){$add_month = 2;$year = $this_year+1;}
elseif($add_month == 15){$add_month = 3;$year = $this_year+1;}
elseif($add_month == 16){$add_month = 4;$year = $this_year+1;}
elseif($add_month == 17){$add_month = 5;$year = $this_year+1;}
elseif($add_month == 18){$add_month = 6;$year = $this_year+1;}
elseif($add_month == 19){$add_month = 7;$year = $this_year+1;}
elseif($add_month == 20){$add_month = 8;$year = $this_year+1;}
else{$year = $this_year;}
echo $what_day.'-'.$add_month.'-'.$year.'<br />';
$months[] = $add_month;
}

echo '<pre>';
print_r($months);
echo '</pre>';

我不想简单地查找从现在起两个月后的日期。假设订单是在 6 月 1 日创建的。下一个循环订单是 8 月 1 日。那么现在假设今天是 9 月 1 日,但下一个循环订单是 10 月 1 日。看到我的困境了吗?

最佳答案

只取当前月份,因为是 6 月,所以我们得到 6。6 mod 2 == 0。下个月是 7 月,我们得到 7。7 mod 2 == 1

因此只需检查 current month % 2 == (first month % 2)

然后检查是否是该月的 1 号。

在 PHP 中,模数是用百分比符号定义的。

$month = date('n');
$createdMonth = 6;
if($month % 2 == $createdMonth % 2){
// stuff
}

关于PHP。如何获得每两个月重复一次的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com