попробовал такие изменения:
В функции show() оставил:
$date_arr = explode(' ',$row->modified);
$tm = explode(':',$date_arr[1]);
$dt = explode('-',$date_arr[0]);
$date1 = mktime($tm[0],$tm[1],$tm[2],$dt[1],$dt[2],$dt[0]);
$date_arr = array(); $tm = array(); $dt = array();
$date_arr = explode(' ',$row->created);
$tm = explode(':',$date_arr[1]);
$dt = explode('-',$date_arr[0]);
$date2 = mktime($tm[0],$tm[1],$tm[2],$dt[1],$dt[2],$dt[0]);
$date = ($date1>$date) ? $date1 : $date2;
$GLOBALS['date'] = $date;
а код
$last_modified = gmdate('D, d M Y H:i:s', $GLOBALS['date']) . ' GMT';
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$if_modified = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
if ($if_modified == $last_modified) {
header('HTTP/1.0 304 Not Modified');
header('Cache-Control: max-age=86400, must-revalidate');
exit;
}
}
header('Cache-Control: max-age=86400, must-revalidate');
header('Last-Modified: ' . $last_modified);
перенес в файл шаблона.
локально протестил - заголовки отправляются.
А на сервере не хотят.