У вас есть таблица с отметками времени? Если это база данных MySQL, вы можете просто сделать это в базе данных, используя addtime : SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
Если вы используете PHP Zend Framework, вы можете сделать что-то вроде:
$date=new Zend_Date(Array('year'=>$iYear,'month'=>$iMonth,'day'=>$iDay));
// changes $date by adding 12 hours
$date->add('12:00:00', Zend_Date::TIMES);
В качестве альтернативы, вы можете сделать это, используя встроенные функции PHP4, такие как:
[быстрее, менее точно: не учитывает високосные секунды / изменения часового пояса и т. д.]
$datestamp=strtotime('2009-07-14 02:00:00'); // It'll probably be better using mktime
$datestamp=$datestamp+(60*60*13); // 60 seconds times 60 minutes times 13 hours
или
[медленнее, точнее]
$datestamp = strtotime('2009-07-14 02:00:00'); // It'll probably be better using mktime
$newDate = date('Y-m-d H:i:S', mktime(date('H',$datestamp)+13, date('i',$datestamp), date('s',$datestamp), date('m',$datestamp), date('d',$datestamp), date('Y',$datestamp)));
или, если вы используете PHP 5 с использованием Datetime functions
$date = new DateTime('2009-07-14 02:00:00');
date_add($date, new DateInterval("P13H"));