function convertDate($string, $timezone = 'UTC') {
$months = array(
'Января','Февраля', 'Марта', 'Апреля', 'Мая', 'Июня',
'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'
);
$time = strtotime($string);
$timeZoneShift = ($time - strtotime($string.' '.$timezone));
$currentTime = time() + $timeZoneShift;
$time = $time + $timeZoneShift;
$firstToken = $time - strtotime('00:00:00', $currentTime) >= 0
? 'Сегодня' : ($time - strtotime('-1 day 00:00:00', $currentTime) >= 0
? 'Вчера' : 'j '.$months[date('n', $time) - 1].' Yг.');
return date($firstToken.' в H:i', $time);
}
echo convertDate('2013-04-23 15:59:59', 'GMT+4');
вторым параметром, временная зона пользователя