我需要一些帮助包围我的头脑。我正在尝试开发每月,每周,每季度,每年订阅的内容。我需要弄清楚下一个充电日期是什么时候。但是我很难理解逻辑。我可以很容易地计算一年是从原始交易(<? echo date("Y-m-d",strtotime($charge_interval, strtotime($original_charge_time))); ?>
),其中$ charge_interval是'+3个月'或'+ 1个月'等等。但是..如果3个月过去了,我可以'只是使用那个等式,因为它将显示“下一个”日期为原始的一个月。有什么建议吗?
答案 0 :(得分:2)
strtotime鲜为人知,但可以证明自己对这种用途非常有用。
编辑:这可能是一个线索:
$charges = 0;
$now = time();
$next_charge_time = strtotime($original_charge_time);
while ($next_charge_time < $now)
{
$charges++;
$next_charge_time = strtotime($charge_interval, $next_charge_time);
}
$next_charge_time = date("m/d/Y", $next_charge_time);
echo "You have been charged $charges times since $original_charge_time.";
echo "<br/>";
echo "Next charge will be on $next_charge_time";
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:0)
尝试mktime(0,0,0,strftime(“%d”,$ origtime),日期(“m”)+ 1,日期(“Y”));
这意味着当然是午夜(前三个参数是H,M,S,如果你愿意,你也可以使用strftime)
适用于下一个日历月,如果您计算出当天晚些时候的日期,则可以删除同月的“+1”。