나는 JavaScript 타임 스탬프와 PHP 타임 스탬프를 만들었습니다. 서로 약 170 초의 차이가 있습니다.왜 JavaScript와 PHP 타임 스탬프가 다른가요?
- 1302162686 PHP -
time()
- 1302162517 자바 스크립트 -
Math.round(new Date().getTime()/1000)
나는이 문제를 데 왜 아무도 말해 주시겠습니까?
나는 JavaScript 타임 스탬프와 PHP 타임 스탬프를 만들었습니다. 서로 약 170 초의 차이가 있습니다.왜 JavaScript와 PHP 타임 스탬프가 다른가요?
time()
Math.round(new Date().getTime()/1000)
나는이 문제를 데 왜 아무도 말해 주시겠습니까?
PHP는 서버 측에서 실행되며 예제에서 JavaScript는 클라이언트 측에서 작동합니다.
양쪽에는 고유 한 시간 구성이 있습니다. 서버의 경우 시간대 설정 등은 변경하지 않는 한 동일하게 유지되지만 서버는 현재 방문자가있는 시간대를 알 수 없습니다. 사용자가이를 제어 할 방법이 없습니다.
랩톱에서 시스템 시계를 변경하면 클라이언트 쪽 JavaScript 날짜/시간에 영향을 미치지 만 서버 타이머는 영향을받지 않습니다.
8 시간 차이가 있습니다! – nerkn
미안하지만, 그 때 내 마음에서 완전히 벗어났다. 도와 줘서 고마워. –
PHP는 시스템 시간 (실행중인 서버)을 봅니다.
JavaScript는 클라이언트 시스템을 언제든지 볼 수 있습니다.
PHP는 서버에서 시간을 사용합니다, 자바 스크립트는 클라이언트 (사용자) 컴퓨터에서 시간을 사용합니다.
마티아스가 맞습니다. 현대 컴퓨터는 시계가 시간에 따라 드리프트를 인식하고 NTP과 같은 프로토콜을 사용하여 시계를 동기화 상태로 유지하기 때문에 일반적으로 이렇게 큰 차이가 발생하지 않아야합니다.
그럼에도 불구하고 당신은 클라이언트에서 시간을 가정해서는 안와 서버 두 가지 이유로, 동일 :
시간을 비교/계산할 때 나는 서버에만 의존합니다. 당신은 클라이언트에 대한 통제권이 없습니다.
좋은 답변입니다. 그 마지막 단락은 충분히 강조 될 수 없습니다. –
PHP와 JavaScript 모두 시스템 시간을 봅니다. 누구의 시스템인가? 그들이 뛰고있는 사람. 서버는 다른 시간에 다른 국가에 위치 할 수 있으므로 차이가 있습니다.
또한 클라이언트의 (또는 덜 자주 서버의) 시계가 올바르지 않을 수 있습니다.나는 종종이 문제에 대응하기 위해 사용
한 가지 방법은 다음과 같이이다 :
당신이 어떤 목적으로 일관성이 걱정되는 경우var referenceTime = new Date('<?php echo date("M n, Y"); ?>');
// referenceTime is now the same as server time
, 당신의 시간 원본과 같은 서버를 사용하는 것이 좋습니다 그리고 만약 시간대 변환을 할 필요 :
이가 관심을 가질
을 : handling timezone conversion with php
는 서버와 클라이언트를 수행은 같은 시간 설정? –