2015-01-22 4 views
-1

나는 이미 this 질문을 시도했지만 내 질문을 해결하지 못했습니다. 대신 1월 (18)을 얻는 'date' => date('D M d Y H:i:s O', strtotime($array['Time']))PHP에서 Javascript로 날짜를 보내십시오.

자바 스크립트 var time = new Date(data.date).toLocaleString()

그러나 :

PHP :

나는이 다음 자바 스크립트에 의해 처리하는 사용자에 JSON을 통해 날짜를 보내는 PHP 서버가 2015 ..., 3이됩니다. 3 월 5877521 -596 : -31 : -23 GMT + 0 : 53 : 28. 거기에 뭐가 잘못 되었나요?

알아 두어야 할 몇 가지 사항 : 서버에는 전송 된 날짜와 중앙 유럽 표준 시간대가 있습니다. 나는 자바 스크립트로 날짜를 국제화하려고 노력하고있다 (위의 예일 뿐이다).

+0

(콘솔에서) raw data.date 값을 제공하십시오. – maxpovver

+0

'$ array [ 'Time']'의 값은 무엇입니까? –

답변

5

왜 문자열을 전달합니까?

var time = new Date(<?php echo strtotime($array['Time']) ?>000); 

참고가의 000 : JS 날짜 생성자는 타임 스탬프를 받아 들일 것입니다. (왜 지금?)

var time = new Date(12345678000); 
        ^^^^^^^^---seconds from php 
          ^^^---instant conversion to milliseconds. 
+0

차이가 없기 때문에 ... – JSHelp

+0

JS 코드에서 'data.date'가 어떻게 보이는지 살펴보기 시작합니다. 올바른 형식의 날짜 문자열이 5877521 년으로 해석 될 수 없기 때문입니다. "부정적인 5 백 9 십 6시". –

+0

Javascript'new Date(). getTime() == data.date'는 (타임 스탬프를 사용하는 경우를 제외하고는) 밀리 초를 제외하고는 동일합니다. 그러나 새'Date (data.date)'를 작성하면 잘못되었습니다. – JSHelp

0

내가하는 int로 마크 B의 대답에서와 타임 스탬프를 분석했다 : 초 strtotime 반환, 그래서 효과적으로 당신이 건물 것 동안 JS (밀리 초)을 사용

I을 지금 해결 : new Date(parseInt(data.date))

+0

그건 의미가 없습니다. 실제 JSON을 표시하면'date : "1421950569"와 같은 이상한 것이 있음을 확신합니다.이 경우 parseInt 대신 trim을 사용할 수 있습니다 – mplungjan

관련 문제