Вы можете сделать что-то вроде этого:
$stylesheets = array(
'foo.css',
'bar.css',
'baz.css',
// ...
'qux.css'
);
$numStylesheets = count($stylesheets);
if (24 % $numStylesheets !== 0) {
echo 'Number of stylesheets needs to be a factor of 24.';
exit;
}
$hour = (int)date('H', $_SERVER['REQUEST_TIME']);
$changeEveryXHours = 24 / $numStylesheets;
$offset = floor($hour / $changeEveryXHours);
$stylesheet = $stylesheets[$offset];
echo '<link rel="stylesheet" href="', $stylesheet, '" />';
Он динамический, в зависимости от количества указанных таблиц стилей. В настоящее время количество таблиц стилей должно быть в 24 раза (1, 2, 3, 4, 6, 8, 12, 24). Вы можете избавиться от этого требования, изменив код так, чтобы использовать минуты и секунды вместо часов, но это слишком много для меня сегодня утром. : -)
Редактировать: Вот тот же сценарий в JS:
var stylesheets = [
'foo.css',
'bar.css',
'baz.css',
// ...
'qux.css'
];
if (24 % stylesheets.length != 0) {
alert('Number of stylesheets needs to be a factor of 24.');
return false;
}
var now = new Date();
var hour = now.getHours();
var changeEveryXHours = 24 / stylesheets.length;
var offset = Math.floor(hour / changeEveryXHours);
var stylesheet = stylesheets[offset];
// If you're using jQuery, I think it's something like this:
$('<link>')
.prop({
rel: 'stylesheet',
href: stylesheet
})
.appendTo($('head'));