Всем пиривет. Вот такая проблема: сохраняю из текстого поля введенную дату, потом перевожу в unix и сохзраняю в бд, потом как перевожу в Europe/Kiev то отстает на 1 час , то есть по Europe/Moscow(по умолчанию) 19:00 а по Europe/Kiev - 18:00, а должно быть 15:00. Запись в бд:
[php:1:9a32602c11]
if(preg_match('/^[0-9]{1,2}-[0-9]{1,2}\s[0-9]{1,2}\:[0-9]{1,2}$/i',$_POST['date'],$dateok)){
$validdate = '2013-'.$_POST['date'].':00';
$this->smarty->assign('validdate',prot($validdate));
}
//для подстраховки
ini_set('date.timezone', 'Europe/Kiev');
$time = new MyDateTime($validdate,1);
$t = strtotime($validdate);
$t = $t+60*60*2;
//my dateTime
$time->setIntTime($t);
$date = $time->getMatchFormat();
[/php:1:9a32602c11]
Методы:
[php:1:9a32602c11]
public function getMatchFormat(){
ini_set('date.timezone', $this->zone);
$arr = array();
$time = $this->date->format('Y-m-d H:i:s');
$arr['start'] = strtotime($time);
$arr['datestart'] = $time;
return $arr;
}
public function setIntTime($time){
ini_set('date.timezone', $this->zone);
$this->date->setTimestamp($time);
}
[/php:1:9a32602c11]
Код вывода и преобразования:
[php:1:9a32602c11]
//устанавливаю время из бд
$time->setIntTime($c[$i]['start']);
//сохраняю переобразованное
$v1 = $time->format('d-m-Y H:i:s');
[/php:1:9a32602c11]
Ну вот, вроде все норм, но мля не пашет корректно. Кто сталкивался или знает, прошу помощи.