PHP 시간() 문제

WBOY
풀어 주다: 2016-08-23 09:17:51
원래의
1795명이 탐색했습니다.

time()은 서버 시간을 구하는데, 중국에서 구한 시간은 미국과 같나요? 개발에 문제가 있어서 중국에서는 상품 공동구매 활동이 종료됐으나 해외에서는 여전히 구매가 가능합니다. 항상 타임스탬프를 사용하고 있고, 데이터베이스의 시작 시간이 일치하는 문제인가요(). ?

답글 내용:

time()은 서버 시간을 구하는데, 중국에서 구한 시간은 미국과 같나요? 개발에 문제가 있어서 중국에서는 상품 공동구매 활동이 종료됐으나 해외에서는 여전히 구매가 가능합니다. 항상 타임스탬프를 사용하고 있고, 데이터베이스의 시작 시간이 일치하는 문제인가요(). ?

타임스탬프는 1970년 1월 1일 00:00:00 GMT부터 현재까지의 총 초 수입니다.
따라서 이 값은 시간대와 관련이 없습니다. 예를 들어 1471827600은 베이징 시간(2016-08-22T09:00, East Zone 8)입니다. , 동일한 타임스탬프는 East Zone에 있습니다. District 7의 시간은 2016-08-22T08:00입니다.

위와 아래의 답변은 모두 정확하며 타임스탬프는 시간대와 관련이 없습니다. 그러나 타임스탬프를 날짜 및 시간 형식으로 변환하면 이전 답변이 틀렸습니다. .. 질문자에게 오해를 불러일으킨 점 사과드립니다.

<code class="php">$time = time();
date_default_timezone_set('America/Los_Angeles'); 
echo time() . PHP_EOL;
echo date('Y-m-d H:i:s', $time) . PHP_EOL;

date_default_timezone_set("UTC"); 
echo time() . PHP_EOL;
echo date('Y-m-d H:i:s', $time) . PHP_EOL;</code>
로그인 후 복사

time() 얻는 것은 타임스탬프이며 타임스탬프에는 시간대가 없으며 모두 GMT입니다. 따라서 두 서버의 서버 시간이 일치하지 않는 한, 얻은 time()는 일정합니다.

시간대가 다릅니다

통일시간대가 UTC인데 저도 이런 경우를 겪었습니다

time() 함수는 타임스탬프를 구하며, 타임존 개념이 없습니다.
단, 국내외 두 대의 서버를 사용하는 경우 동일한 타임스탬프를 설정하여 판매를 시작하고, 동일한 타임스탬프를 설정하여 판매를 종료합니다. , 그러면 국내가 시작됩니다. 당시 외국 사이트는 시작되지 않았습니다. (추측의 근거는 국내에서는 종료되었지만 아직 해외에서는 종료되지 않았으며, 판매도 동시에 지속되었다는 점입니다.) 타임스탬프로 변환되기 때문입니다. 시간에는 타임존이라는 개념이 있는데, 동시에 매도, 동시에 종료하려면 두 곳의 시간을 그리니치 표준시(타임스탬프의 유래)로 변환해야 하며, 그런 다음 다른 타임스탬프를 얻고 지속하려는 판매 시간을 추가하세요.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿