2013-06-26 4 views
1

내가 PHP에서 해당 형식에 01-01-2013 12:00:00 같은 표준 dd-mm-yyyy h:i:s 날짜를 변환하려면 어떻게해야이 다음과 같은 형식.Net DataContractJsonSerializer 형식으로 PHP 날짜의 서식을 지정하는 방법은 무엇입니까?

\/Date(410256000000-0800)\/ 

에서 PHP를 사용하여 JSON 포스트 안에 날짜를 보낼 수있는 요구 사항은? 그 값이 무엇인지 알 필요가 있습니다. 실제로는 stringify 답을 찾지 않습니다.

+1

그 번호는 '410256000000-0800'입니다. 대표한다고? 형식을 모른다면 변환 할 수 없습니다.] (http://php.net/date). – Gordon

+0

그래, 내 질문에 누군가가 그 형식이 무엇을 나타내는 지 알고 있다면 정말? 일부 연구에 따르면 .Net DataContractJsonSerializer 형식 인 –

+1

은 "u"로 커야합니다. 그냥 짐작 해봤 니? – DevZer0

답변

4

이 그것을 수행해야합니다 나는 당신에게 그것을두고

$dateTime = DateTime::createFromFormat('d-m-Y H:i:s', '01-01-2013 12:00:00'); 

$requiredJsonFormat = sprintf(
    '\/Date(%s%s)\/', 
    $dateTime->format('U') * 1000, 
    $dateTime->format('O') 
); 

echo $requiredJsonFormat; // prints '\/Date(1357038000000+0100)\/' 

을 형식 UOhttp://php.net/date에서 무엇을 찾을 수 있습니다.

또 다른 대안은 PHP의 DOTNET API를 사용하고 PHP에서 직접 DataContractJsonSerializer 클래스를 사용하는 것입니다. 그러나 .NET에 서버가 설치되어 있어야하며 PHP의 DOTNET API를 사용하는 것은 다소 모호합니다.

더 흥미로운 부분은이 형식이 왜 필요한지입니다. 이 http://weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx

에서 블로그 게시물에서 설명하지만 때문에 ECMA 스크립트 사양에서 이상한 감독의, JSON에 날짜를 설명하는 표준 방법이 없습니다. [...] 현재의 접근 방식은 JSON 사양에 작은 허점을 사용하고 있습니다. JSON 문자열 리터럴에서 일부 문자를 이스케이프 처리 할 수도 있고 처리하지 않을 수도 있습니다. 그러한 문자 중에는 이상하게도 슬래시 문자 ('/')가 있습니다. [...] 새로운 형식은 "/ Date (1198908717056) /"입니다.이 숫자는 1970 년 1 월 1 일 이후의 밀리 초 수입니다. [...] 요점은이 날짜가 같은 날짜의 문자열에서 날짜 리터럴을 모호하게한다는 것입니다 모든 표준 JSON 파서가 구문 분석 할 순수 JSON으로 남겨 둡니다. 물론이 컨벤션에 대해 모르는 파서는 문자열을 볼 수는 있지만 파서는 위양성 위험없이 날짜로 파싱 할 수 있습니다.

+0

Gordon에게 감사의 말씀을 전합니다. 매우 감사합니다. 당신의 대답은 매우 도움이됩니다. –

관련 문제