Content

Analyzing a sequence of dates to determine the best guess for when the next event will accor is something best left to statistical modeling tools, but I’m going to try and show you a very basic way to do exactly that using PHP and an array of date/time stamps.

In the above function “get_average” you will see the for loop running through the array of date/time stamps and calling the function “get_diff”. The first time the loop runs it sets the varable $last to the first date/time stamp, this is to give us a starting point otherwise when we ran the “get_diff” function it would return an error or a number based on a date out of our sample rage and would therefore make are guess extreamly inaccurate, instead of just somewhat being inaccurate. The get_diff function compaires the last date/time sample and the current date/time sample in the array and returns the differance in minutes, that time is then added to the $total. Once all the items in the array have been calculated the $total is divided by the count of the date/time stamp array minus one (1), we minus one (1) because the first value of the array is not calculated, it is just a starting point to calculate the difference of the next value in the array.

We now have the average increase in time to base our prediction on and we can use the above function to tie it all together. We take the last date in the date/time stamp array and add the average to that date and then format it to a readable format and we are done. The next occurrence will most likely occur around “05/19/2013 13:41”.

Obviously this isn’t going to be super accurate but it will provide a “best guess” based on the data provided. If anyone has a better algorithm for guess the next occurrence in a date/time array I would love to see it.