Xwab
Форумыnavigate_nextПрограммирование на PHP

Перевод времени в разные зоны
Сообщения
DJ_WINROL

Всем пиривет. Вот такая проблема: сохраняю из текстого поля введенную дату, потом перевожу в 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]

Ну вот, вроде все норм, но мля не пашет корректно. Кто сталкивался или знает, прошу помощи.

18 Мар 2013, 1:11
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.