2012-01-19 4 views
2

codeigniter의 날짜 도우미를로드하면 "local_to_gmt()"함수가 있지만 인수가없고 현재 서버 시간 (time()에 의해 생성 된 것) 만 변환합니다. .codeigniter에서 사용자 로컬 시간을 gmt unix 타임 스탬프로 변환

데이터베이스의 현지 시간 및 DST 필드에 따라 사용자가 지정한 다른 시간으로 변환 할 수있는 기능이 필요합니다.

또는 human_to_unix()와 같은 두 개의 매개 변수 (dst 및 현지 시간)가있는 함수.

이러한 기능이 있습니까?


은 내가 말했다 : local_to_gmt()는 인수를 취하지 않는다, 그러나 첫번째 답변자가 말한대로 그것은뿐만 아니라 인수를 취한다. 하지만 사용자 시간대 및 일광 절약 시간제 옵션에 중점을 둡니다.


3RD 업데이트 !!!

나는 해결책을 찾았지만 stackoverlow의 법칙에 따라 몇 시간 후까지 내 자신의 질문에 대답 할 수 없었다. http://codeigniter.com/wiki/convert_to_gmt

function convert_to_gmt($time = '', $timezone = 'UTC', $dst = FALSE) 
{    
    if ($time == '') 
    { 
     return now(); 
    } 

    $time -= timezones($timezone) * 3600; 

    if ($dst == TRUE) 
    { 
     $time -= 3600; 
    } 

    return $time; 
} 

그러나 질문 여전히 존재 :

당신이 $의 DST가 아무 문제없이 작동 할 것이라고 믿는가 가장 ​​가까운 지금까지 저에 대한 해결책이 될 수있는이 기능에서

봐 ? 내가 이해할 수 있듯이 함수에 따르면 $ dst는 항상 1 시간 감소합니다. 그러나 날씨가 여름이든 아니든 실현되어야합니다. 겨울이라도 시간이 단축됩니다 !!!

이 문제를 극복하는 방법 ???

+0

가능한 복제본 [[PHP에서 한 날짜 형식을 다른 형식으로 변환]] (http://stackoverflow.com/questions/2167916/convert-one-date-format-into-another-in-php) - 또한 오른쪽에 많은 관련 질문 및 사이트 검색을 사용하십시오. – hakre

+0

내 질문과 귀하가 언급 한 링크 사이에는 아무런 관련이 없습니다.사용자 별 시간대 및 DST 설정에 대해 설명합니다. 그러나 질문과 우수 답변 (나는 그 중 2 개만 읽음)은 사용자 현지 시간에 관한 것이 아니 었습니다. 어쨌든 –

+0

필요한 기능을 수행하는 기능을 요구하는 것이 현명하지 않습니다. 그 복제본은 필자가 고백해야하는 것은 아니지만 오른쪽의 다른 관련 질문 (예. (단지 * 하나를 선택하는 것) [PHP, Codeigniter : 웹 응용 프로그램에서 사용자의 시간대/위치를 기반으로 날짜/시간을 설정하는 방법?] (http://stackoverflow.com/questions/2274568/php-codeigniter - 날짜 - 시간대 - 사용자 - 시간대 - 위치 - 전세계 - – hakre

답변

0

처럼 PHP에서 gm 그룹 기능을 사용 : 나는 질문, 내가 PHP 그 기능이 몰랐 물었을 때

, 그래서 나는 고개를했던 같은 Codeigniter의 행동.

1

Manual는 말한다 :

local_to_gmt()
입력으로 유닉스 타임 스탬프를 받아서 GMT

로서 돌려줍니다 ...이 예제 제공 :

$now = time(); 
$gmt = local_to_gmt($now); 

그래서 나는 실제로 그것이 논쟁을 받아 들일 것이라고 말하고 싶습니다.

+0

아, 네 말이 맞습니다. 그러나 사용자 로컬 시간 및 DST 설정에는 신경 쓰지 않습니다. –

+0

유닉스 타임 스탬프는 "범용"이며, 사용자가 어디에 있든지 동일하기 때문에 시간대 정보가 포함되어 있지 않습니다. 정기적 인 날짜/시간으로 전환 할 때 시간대를 고려합니다 (예 : 19/01/2012 13:14). –

+0

네, 맞습니다. 그리고 그 때문에 나는 (사용자 테이블에있는 그의 데이터베이스 필드에 따라) 사용자가주는 시간에 영향을주고 유닉스 타임 스탬프로 변환하는 함수를 원한다. 이렇게하면 내 계산을 할 수있게되며 다른 사용자의 현지 시간으로 시간을 표시 할 수있게됩니다. –

관련 문제