我真的很想弄清楚数学,但我打赌这很简单,我会踢自己:)
我正在编写一个PHP例程,每隔12天就会为用户提供一个新文件。
起点是我们已经存储的日期。
我有他们从变量开始的天数,我可以将它除以12来计算给他们的文件数量(所有文件名都存储在一个数组中) - 这很容易。
我现在想要做的是告诉他们在他们下一个档案前多少天。
所以我有:
$ num_days整数,等于自启动以来的天数。
当接下来的12天边界向他们展示下一个文件的前几天时,要计算什么数学?
答案 0 :(得分:0)
您正在寻找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!