【问题标题】:Is there any way to increment a number after every month in PHP有没有办法在 PHP 中每个月后增加一个数字
【发布时间】:2019-03-24 01:10:59
【问题描述】:

我正在开发一个 PHP 项目。我想要做的是每个月自行增加一个数字(如500)。有没有可能的方法来实现这一点?

【问题讨论】:

  • 唯一可能的方法是使用 cron 作业。
  • 您可以计算硬编码开始日期(首次发布该功能的日期)与当前日期之间的月数。 stackoverflow.com/questions/13416894/…
  • 您可以使用起始日期和DateTime::diff 来计算到现在或某个日期的偏移量。
  • @Jared Farrish,你能举个例子吗?

标签: php date


【解决方案1】:

我不知道你的确切算法,但猜测如下:

$start = new DateTime('2009-10-11');
$end = new DateTime('2010-12-23');

$diff = $end->diff($start);

$months = ($diff->y * 12) + $diff->m;
$rollup = 0;

var_dump("months: $months");

while ($months-- > 0) {
    echo "rollup: $rollup".PHP_EOL;
    $rollup += $rollup ?: 500;
}

var_dump("result: $rollup");

给予:

string(10) "months: 14"
rollup: 0
rollup: 500
rollup: 1000
rollup: 2000
rollup: 4000
rollup: 8000
rollup: 16000
rollup: 32000
rollup: 64000
rollup: 128000
rollup: 256000
rollup: 512000
rollup: 1024000
rollup: 2048000
string(15) "result: 4096000"

https://3v4l.org/51XMD

【讨论】:

    【解决方案2】:

    我做了一些假设:

    • 您需要在代码中的某处使用此自动递增值,该值将作为某些脚本的一部分执行
    • 您的初始日期和500 值属于过去,我的意思是任何当前日期都将大于该初始日期

    https://ideone.com/iobOZO

    $initialDate = strtotime("2018-12-01");
    
    $years = (date("Y") - date("Y", $initialDate));
    
    $number = 500 + $years*12 
              + date("m") - date("m", $initialDate);
    
    echo $number;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 2023-01-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      相关资源
      最近更新 更多