gpt4 book ai didi

PHP 从 12 月 29 日起生成错误的下一个付款日期

转载 作者:可可西里 更新时间:2023-10-31 23:04:38 27 4
gpt4 key购买 nike

我在 PHP 中使用以下逻辑根据我的订阅按比例生成下一个付款日期:

// calculating next payment date
$today = date('d');
$checkDate = '15';
if ($today >= $checkDate) {
// subscription purchase after 15.
$nextPaymentDate = date('Y-m-01', strtotime('+2 month'));
} else {
// subscription purchase before 15.
$nextPaymentDate = date('Y-m-01', strtotime('next month'));
}

基本上,当客户在日期 15 之前购买订阅时,下一个付款日期应设置为下个月的第一天。否则应将其设置为下个月的第一个日期。

直到昨天(2014 年 12 月 28 日),这个逻辑仍然有效。正如预期在 12 月 15 日之前,我得到了 2015-01-01。在 12 月 15 日之后,我得到了 2015-02-01。但从今天开始,我将 nextPaymentDate 设为 2015-03-01

我也试过

// ....
if ($today >= $checkDate) {
// subscription purchase after 15.
$nextPaymentDate = date('Y-m-01', strtotime('next month'));
$nextPaymentDate = date($nextPaymentDate, strtotime('next month'));
// ....

但它给出了相同的结果:(

我猜这个问题可能会发生,因为没有 2 月 29 日、30 日或 31 日。如果这个假设是正确的,这个问题也可能在所有 31 天都存在。

我该怎么办?请帮帮我。

最佳答案

从当月的第一天开始计算:

date("Y-m-01", strtotime(date("Y-m-01")." +2 months"));

关于PHP 从 12 月 29 日起生成错误的下一个付款日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27690655/

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