Временные зоны

Статус
В этой теме нельзя размещать новые ответы.

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
Поставили задачу сделать выбор временной зоны в настройках на сайте.
Раньше с этим не сталкивался, потому не понятно как это делается
есть вот такая функция которая выводит везде на сайте даты
PHP:
    function rus_month($date){
        $Month_r = array(
            "01" => "января",
            "02" => "февраля",
            "03" => "марта",
            "04" => "апреля",
            "05" => "мая",
            "06" => "июня",
            "07" => "июля",
            "08" => "августа",
            "09" => "сентября",
            "10" => "октября",
            "11" => "ноября",
            "12" => "декабря"
        );
        $d = date('c',$date);
        $d = explode('T',$d);
        $t = explode('-',$d[0]);
        $t[2] = $t[2] - 0;
        $yr = $t[2].' '.$Month_r[$t[1]].' '.$t[0];
        $t = explode(':',$d[1]);
        $td = $yr.' в '.$t[0].':'.$t[1];
        return $td;
    }
подскажите как временные зоны использовать тут?
 
Поставили задачу сделать выбор временной зоны в настройках на сайте.
Раньше с этим не сталкивался, потому не понятно как это делается
есть вот такая функция которая выводит везде на сайте даты
PHP:
    function rus_month($date){
        $Month_r = array(
            "01" => "января",
            "02" => "февраля",
            "03" => "марта",
            "04" => "апреля",
            "05" => "мая",
            "06" => "июня",
            "07" => "июля",
            "08" => "августа",
            "09" => "сентября",
            "10" => "октября",
            "11" => "ноября",
            "12" => "декабря"
        );
        $d = date('c',$date);
        $d = explode('T',$d);
        $t = explode('-',$d[0]);
        $t[2] = $t[2] - 0;
        $yr = $t[2].' '.$Month_r[$t[1]].' '.$t[0];
        $t = explode(':',$d[1]);
        $td = $yr.' в '.$t[0].':'.$t[1];
        return $td;
    }
подскажите как временные зоны использовать тут?



а по подробнее можно а то не могу понять что иимено нужно вижу что время под буквой t разложено эксплойдом! что именно нужно в итоге получить?
 
На входе timestamp на выходе должен получить время с учетом выбранной зоны, для примера возьмем зону Asia/Tokyo
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");
$dateTimeJapan = new DateTime($date, $dateTimeZoneJapan);

var_dump($dateTimeJapan);
делаю так, получаю
object(DateTime)#23 (3) { ["date"]=> string(19) "7376-12-01 14:17:42"
что за - 7376
 
Сам додумался )
PHP:
    function rus_month($date){
        $Month_r = array(
            "January" => "января",
            "February" => "февраля",
            "March" => "марта",
            "April" => "апреля",
            "June" => "июня",
            "May" => "мая",
            "July" => "июля",
            "August" => "августа",
            "September" => "сентября",
            "October" => "октября",
            "November" => "ноября",
            "December" => "декабря"
        );           
       
        $dt = new DateTime();
        $dt->setTimestamp($date);

        $dt->setTimezone(new DateTimeZone("UTC"));
        $would_be = $dt->format('m F Y в H:i');
        return str_replace(array_keys($Month_r), array_values($Month_r), $would_be);    
    }
может кому пригодится. на входе timestamp на выходе дата: 12 декабря 2014 в 09:49
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху