2010-03-23 5 views

답변

18

날짜 리터럴 were proposed and then retracted, 어쩌면 우리는 ECMA-262 규격의 향후 버전에서 볼 수 있습니다.

there is no Date literal in JavaScript 이후로 JSON의 리터럴도 없습니다 (JavaScript Object Notation은 JavaScript 엔진에서 구문 분석 할 수없는 경우 너무 좋은 이름이 아닙니다 ;-)). 틀림없이, 이것은 불행한 일입니다. 많은 웹 서비스는 ISO 8601 문자열을 출력합니다. 2010-03-23T23:57Z이지만 JavaScript에서 구문 분석하려면 사용자 정의 라이브러리를 사용하거나 사용자 정의 함수를 작성하거나 ECMAScript 5th Date 구문 분석 스펙에 의존해야합니다.이 스펙에서는 구현시 ISO 8601 문자열을 기본적으로 구문 분석해야한다고 명시합니다.

는 자바 스크립트 구문 분석 할 것 자신의 JSON의 경우 식별자와 함께 1 월 1 일 1970 0시의 밀리 세컨드 같은 간단한 것을 사용하고 JSON.parse에 자극성 기능 전달할 수 :

var myJSON = '{"MyDate":"@[email protected]"}' 
var myObj = JSON.parse(myJSON, function (key, value) 
{ 
    // Edit: don't forget to check the type == string! 
    if (typeof value == "string" && value.slice(0, 1) == "@" && value.slice(-1) == "@") 
     return new Date(+value.substring(1, -1)); 
    else 
     return value; 
} 

분명히, 최신 브라우저에있는 기본 JSON 객체 또는 json2.js을 사용해야 구문 분석시 리비버를 사용할 수 있습니다.

0

는 예를 들어, 문자열 표기법을 사용 "2010-03-24 ..."및 개체 표현에 대해 "{...}"개체 표기법을 사용합니다.

+0

날짜에 대해 동일한 표기법을 사용하는 경우 문자열이 날짜이고 문자열이 아닌 것을 어떻게 알 수 있습니까? – OscarRyz

7

날짜 리터럴에 대한 특수 형식은 없습니다.

자바 스크립트에서는 new Date(2010, 2, 23)을 쓸 수 있습니다 (불행히도 0 기준 임).

+0

년 - 월 - 일 맞습니까? JSON은 어떻습니까? 날짜에 대해 받아 들여지는 가치는 무엇입니까? – OscarRyz

+0

예. JSON에는 표준이 없습니다. 일반 문자열을 사용해야합니다. – SLaks

+1

그리고 나중에, 당신은 자바 스크립트에서 그것을 어떻게 사용합니까? 다음과 같이해야합니까 :'var myDate = new Date (jsonObj.date);'??? – OscarRyz

4

은 시리얼 라이저에 따라 다릅니다.

그 중 하나가 될 수 있습니다

/일 (1224043200000)/

/일 (1198908717056)/(MS JSON 날짜)

/일 (1198908717056-1000)/(+/- 시간대)

새로운 날짜 ("2010-03-24")가 (이 내가 이해에서 일반적으로 인정 된 '자바 스크립트 JSON')

"2010-03-24"

입니다 16,

+8

실제 리터럴이 없으며 각 시리얼 라이저는 다르지만 실용적인 답변을위한 곳이지 현학적 인 질의어가 아닙니다. –

관련 문제