2012-04-17 2 views
1

어떻게하면 php time()을 사용하여 사용자의 현지 시간을 얻을 수 있습니까? 아니면 다른 방법이 있습니까? 이것은 그것이 자신의 시간대에 있음을 의미합니다.시간대가 다른 시간대()

나는 사용자의 로컬 시간 전에 시간을 계산해야

, 여기 내가 전에 기능에 볼 수있는 좋은 스크립트입니다 : 위의 스크립트에서

<?php 
function timeago($time) 
    { 
    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); 
    $lengths = array("60","60","24","7","4.35","12","10"); 

    $now = time(); 

    $difference  = $now - $time; 
    $tense   = "ago"; 

    for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) 
     { 
     $difference /= $lengths[$j]; 
     } 

    $difference = round($difference); 

    if($difference != 1) 
     { 
     $periods[$j].= "s"; 
     } 

    return "$difference $periods[$j] $tense"; 
    } 
?> 

<?php 

$date = strtotime('2012-04-15 07:41:03'); 
$datep = timeago($date); 

echo $datep; 
?> 

는, 내가 시간을 (사용)하지만 단지 내를 얻을 수 서버 시간 내 옆에 로컬 시간 아닙니다. 내 현지 시간 (사용자의 현지 시간)을 얻으려면 어떻게해야합니까?

+0

중복 된 http://stackoverflow.com/questions/4746249/get-user-timezone http://stackoverflow.com/questions/13/how-can-i-determine-a-web-users-time-zone ?? – ManseUK

+0

사용자 시간대는 무엇입니까? PHP 스크립트를 말하지 않는 한, 서버 시간 ('$ time = time();') 또는 GMT/UTC 시간 ('$ time = (int) gmdate 'U');). – hakre

+0

감사합니다 ManseUK – sm21guy

답변

0

가장 좋은 방법은 클라이언트 쪽입니다. Javascript의 Date 함수를 사용하여 PHP로 보내십시오.

+0

왜 이것이 다운 voted인지 모릅니다. 쿠키와 결합되는 한 가장 효과적인 방법입니다. +1 –

1

고객이 정보를 전달하지 않고도 서버에서 로컬 시간을 가져올 수 있는지 잘 모르겠습니다. 자바 스크립트가 좋은 예입니다. 내가하는 방식 (내 아이디어가 아니라, 어딘가에 읽는)은 JavaScript로 현지 시간 쿠키를 설정하고 PHP가 쿠키를 읽고 date_default_timezone_set()에 해당 데이터를 사용하도록하는 것입니다. 나는 그것이 유일한 방탄 식의 대답이라고 생각하고 그것은 나를 위해 잘 작동합니다.

편집 : 나는 현지 시간을 얻기위한 서버 기반/PHP 방법이 아니다 http://php.net/manual/en/function.localtime.php

0

에서 그것을 읽었다. Javascript를 통해 클라이언트에서 가져와야합니다. Google "bitbucket timezone detect"를 사용하여 PHP에서 읽고 date_default_timezone_set()을 통해 설정할 수있는 "local_timezone"쿠키를 설정합니다.