이 그것을 수행해야합니다 나는 당신에게 그것을두고
$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)\/'
을 형식 U
및 O
이 http://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으로 남겨 둡니다. 물론이 컨벤션에 대해 모르는 파서는 문자열을 볼 수는 있지만 파서는 위양성 위험없이 날짜로 파싱 할 수 있습니다.
그 번호는 '410256000000-0800'입니다. 대표한다고? 형식을 모른다면 변환 할 수 없습니다.] (http://php.net/date). – Gordon
그래, 내 질문에 누군가가 그 형식이 무엇을 나타내는 지 알고 있다면 정말? 일부 연구에 따르면 .Net DataContractJsonSerializer 형식 인 –
은 "u"로 커야합니다. 그냥 짐작 해봤 니? – DevZer0