Daily changing random quotes

This example shows how to display a random quote that changes only daily, monthly or just every year.

This is much better than quotes that change on every page load because it is search engine friendly and does not confuse the visitors.

function RandomQuoteByInterval($TimeBase, $QuotesArray){
 
    // Make sure it is a integer
    $TimeBase = intval($TimeBase);
 
    // How many items are in the array?
    $ItemCount = count($QuotesArray);
 
    // By using the modulus operator we get a pseudo
    // random index position that is between zero and the
    // maximal value (ItemCount)
    $RandomIndexPos = ($TimeBase % $ItemCount);
 
    // Now return the random array element
    return $QuotesArray[$RandomIndexPos];
}
 
/*
** --> See the example section below for a
**     detailed instruction.
*/
Snippet Details



// Use the day of the year to get a daily changing
// quote changing (z = 0 till 365)
$DayOfTheYear = date('z'); 
 
// You could also use:
//  --> date('m'); // Quote changes every month
//  --> date('h'); // Quote changes every hour
//  --> date('i'); // Quote changes every minute
 
// Example array with some random quotes
$RandomQuotes = array(
    'No animals were harmed in the making of this snippet.',
    'Nice snippets',
    'The modulus operator rocks!',
    'PHP is cool.'
);
 
print RandomQuoteByInterval($DayOfTheYear, $RandomQuotes);
 
// --> returns "PHP is cool." on September 25, 2007

Sorry folks, comments have been deactivated for now due to the large amount of spam.

Please try to post your questions or problems on a related programming board, a suitable mailing list, a programming chat-room,
or use a QA website like stackoverflow because I'm usually too busy to answer any mails related
to my code snippets. Therefore please just mail me if you found a serious bug... Thank you!


Older comments:

Jan January 02, 2011 at 10:56
This is exactly what I have been looking for. Random but not at every page refresh. Just feed it an array and it does it's magic. I will use it to display an hourly random image on my homepage. Thanks for this!
Mike G September 24, 2008 at 23:52
How can I display the quote every 15 seconds?
thanks