2012-12-28 4 views
3

이것은 미친 짓입니다. 어떻게 처리해야합니까? 크롬 콘솔에서PHP와 JS 타임 스탬프 간의 불일치

:

new Date(2013,0,1).getTime() // 1st of Jan 2013 
> 1356991200000 
------------ 
new Date(2013,0,1).getTime()== 1356991200000 
> true 

이제 PHP에서 그 값을 취

<?php 
    die(date('l, j F Y'), 1356991200000/1000); // cut some ms 
?> 

을 나는 Monday, 31 December 2012

는 GMT이 관련이 얻을? 이 문제를 어떻게 해결할 수 있습니까?

+3

쉿 [날짜 시간 (http://php.net/class.datetime), DateTimeZone (http://php.net/class.datetimezone) – Charles

+1

공룡과 드래곤으로 PHP 업그레이드를 처리 할 수 ​​없습니다. –

+1

어떤 특정 버전으로 제한됩니까? No DateTimeZone은 5.1 또는 5.0에서 멈춘다는 것을 의미합니다 ... – Charles

답변

6

자바 스크립트는 클라이언트의 시간대와 함께 작동합니다.

JS : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

var x = new Date() 
var currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60 

PHP : http://php.net/manual/en/function.date-default-timezone-get.php

<?php 
echo date_default_timezone_get(); 
+0

사실,하지만 그는 PHP에 특정 타임 스탬프를 제공하므로 서버 시간과 관련이 없습니다. – kojiro

+0

@kojiro 그러나 서버는 설정된 시간대에 따라 시간을 형식화합니다. 다른 시간대, 다른 날짜. – deceze

+0

@deceze 아 물론. 바보 나! – kojiro

3

둘 중 하나를 사용하십시오 (서버 쪽을 권합니다). 둘 다 동기화 될 수 없습니다. 하나는 귀하의 서버에 의존하고 다른 하나는 사용자의 컴퓨터에 달려 있습니다. PHP는 서버 시간대와 함께 작동하는 반면

당신이 뭔가 사용을 기준으로 시간을 표시하고 페이지 새로 고침 한 번 클라이언트 측 시간을 업데이트해야하는 경우

...

관련 문제