PHP /一般数学 - 查找下一个12天的点

时间:2017-10-05 19:08:56

标签: php math

我真的很想弄清楚数学,但我打赌这很简单,我会踢自己:)

我正在编写一个PHP例程,每隔12天就会为用户提供一个新文件。

起点是我们已经存储的日期。

我有他们从变量开始的天数,我可以将它除以12来计算给他们的文件数量(所有文件名都存储在一个数组中) - 这很容易。

我现在想要做的是告诉他们在他们下一个档案前多少天。

所以我有:

$ num_days整数,等于自启动以来的天数。

当接下来的12天边界向他们展示下一个文件的前几天时,要计算什么数学?

2 个答案:

答案 0 :(得分:0)

您正在寻找mod运算符(%)

PHP MOD

给定X和Y,它将X分为Y,而不是返回结果,它返回剩余的。

示例:

8 % 2 = 0 (8/2 = 4, leftover = 0)
10 % 3 = 1 (10/3 = 3, leftover = 1)

那么,根据您的具体情况

$days_since = $num_days % 12 //days since the "last starting period"
// for example if $num_days = 20, then $num_days % 12 = 8
$days_until = 12 - $days_since

那就是它!

答案 1 :(得分:0)

PHP有很多处理日期和时间的功能

$joined = new DateTime( '2011-10-01' ); // Set this to date they joined
$now = new DateTime();  // Date now
$end = new DateTime('+13 day');  // Date in 13 days time, set to 12 if you want result to be 0 if today is file day
$interval = new DateInterval('P12D');  // Set your date interval of 12 days
$daterange = new DatePeriod($joined, $interval ,$end); // Get the date of every 12th day since they joined
$files = 0;  // Set file counter to zero
foreach($daterange as $date){     // Loop over all the dates
    $enddate =  $date;         // Sets every time so when loop ends will return the last date
    $files++;                  // Add one to the number of files for each date
}
$interval = $now->diff($enddate);  // Work out how many days between now and the next file day
echo $interval->format('%a days until your next file is available'); // Profit!