IT

PHP로 UTC 시간을 얻으십시오

lottoking 2020. 7. 30. 09:39
반응형

PHP로 UTC 시간을 얻으십시오


PHP의 date () 함수를 사용하여 UTC / GMT +/- 타임 스탬프를 어떻게 얻을 수 있습니까? 예를 들어 시도하면

date("Y-m-d H:i:s", time()); 

유닉스 타임 스탬프를받을 것입니다. 하지만 현지 시간을 기준으로 KMT / UTC +/- 0400 또는 GMT / UTC +/- 1000을 사용하여 UTC / GMT 타임 스탬프를 가져옵니다.


를 사용 하면 항상 GMT 날짜가 반환됩니다. 구문 은와 동일합니다 .gmdatedate


간단한 gmdate () 로 충분합니다

<?php
print gmdate("Y-m-d\TH:i:s\Z");

앞에서 대답 했듯이 PHP 5.2.0부터 DateTime클래스를 사용하고 인스턴스를 사용하여 UTC를 사용할 수 있습니다 DateTimeZone.

DateTime __construct () 설명서 에서는 현재 시간을 가져 오기 위해 첫 번째를 할 때 "지금"을 첫 번째 매개 변수로 제안합니다.

$date_utc = new \DateTime("now", new \DateTimeZone("UTC"));

echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC

$time = time();
$check = $time+date("Z",$time);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check);

date("Y-m-d H:i:s", time() - date("Z"))

전화하는 것 외에이 gmdate코드를 나머지 코드 앞에 놓을 수도 있습니다.

<?php
date_default_timezone_set("UTC");
?>

다음 GMT / UTC 행사를 사용하기 위해 나머지 날짜 / 시간 관련 호출이 발생합니다.


UTC 날짜

gmdate("Y-m-d H:i:s");

UTC 타임 스탬프 포함

time();

date_default_timezone_set코드 에서도 결과가 다르지 않습니다 .


인수없이 gmmktime 함수를 사용하여 현재 UTC 타임 스탬프를 얻을 수 있습니다 .

$time = gmmktime();
echo date("Y-m-d H:i:s", $time); 

gmmktime은 서버 시간이 UTC를 사용하는 경우에만 작동합니다. 예를 들어 서버가 미국 / 태평양으로 설정되어 있습니다. 위에 함수는 태평양 시간을 다시 에코합니다.


로컬 타이밍에 따라 따라 GMT / UTC +/- 0400 또는 GMT / UTC +/- 1000

현지 시간에서 성능이 제공하기 위해 사용자 정의 형식 이 없습니다 O.

그리니치 시간 (GMT)과의 시간 차이 (예 : +0200)

date_default_timezone_set('America/La_Paz');
echo date('Y-m-d H:i:s O');

2018-01-12 12:10:11 -0400

그러나 이식성 / 상호 운용성을 최대화하려면 ISO8601 날짜 형식을 사용하는 것이 좋습니다.c

date_default_timezone_set('America/La_Paz');
echo date('c');

2018-01-12T12 : 10 : 11-04 : 00

date_default_timezone_set('Australia/Brisbane');
echo date('c');

2018-01-13T02 : 10 : 11 + 10:00

사용할 수 있으며 또한 시간대 오프셋 문자열은 항상gmdate+00:00

date_default_timezone_set('America/La_Paz');
echo gmdate('c');

2018-01-12T16 : 10 : 11 + 00:00

date_default_timezone_set('Australia/Brisbane');
echo gmdate('c');

2018-01-12T16 : 10 : 11 + 00:00


UTC 시간을 원한다면 다음을 사용할 수 있습니다.

date_default_timezone_set('Asia/Calcutta');

$current_date = date("Y/m/d g:i A");

$ist_date = DateTime::createFromFormat(
                        '"Y/m/d g:i A"',
                        $current_date,
                        new DateTimeZone('Asia/Calcutta')
                    );

$utc_date = clone $ist_date;
$utc_date->setTimeZone(new DateTimeZone('UTC'));

echo 'UTC:  ' . $utc_date->format('Y-m-d g:i A');

/**
     * Converts a local Unix timestamp to GMT
     *
     * @param   int Unix timestamp
     * @return  int
     */
    function local_to_gmt($time = '')
    {
        if ($time === '')
        {
            $time = time();
        }

        return mktime(
            gmdate('G', $time),
            gmdate('i', $time),
            gmdate('s', $time),
            gmdate('n', $time),
            gmdate('j', $time),
            gmdate('Y', $time)
        );
    }

참고 URL : https://stackoverflow.com/questions/8655515/get-utc-time-in-php

반응형