2015-02-02 2 views
0

의견을 검토 한 후 문제가 무엇인지, 내가 무엇을하려고하는지 정확하게 명확하게하기 위해 의견을 명확히하기로 결정했습니다.JSON 날짜를 UTC 형식으로 변환하는 방법

범위의 Orders 모델에 바인딩 된 데이터 인 앵귤러 부트 스트랩 양식을 사용하려고 시도 중입니다.이 개체를 x-www-urlencoded 형식으로 변환하고자합니다. $http.post(..) 메서드를 전달할 수 있도록 OrderRef=101121&OrderDate=2015-02-02T17:40:00.111Z&Address=140%20Acacia%20Street입니다.

인터넷에서 Order 개체를 x-www-urlencoded 형식으로 변환 할 수있는 예를 발견했습니다. 거의 작동하지만 개체의 날짜 속성은 UTC로 포맷되지 않습니다.

모든 날짜가 UTC 형식 날짜로 전달되고 POST이 오류로 인해 실패 할 것으로 예상되는 RESTful API가 있습니다.

내 개체 예를 들어 다음과 같은 코드를 사용하여 변환 할 때 :

var order = { 
    OrderRef: '101121', 
    OrderDate: new Date('02/02/2015'), 
    Address: '140 Acacia Street' 
} 

var data = jQuery.param(order); 

나는 내가 원하는 것이 아니다 주문 날짜 속성에 대한 Mon+Mar+02+2015+00%3A00%3A00+GMT%2B0000+(GMT+Standard+Time)을 얻고있다.

변환 된 개체를 RESTful API로 보내면 해당 날짜 형식을 이해할 수 없기 때문에 오류가 발생합니다.

속성이 Date 인 객체를 UTC 형식으로 올바르게 변환하는 JavaScript 기능이 내장되어 있습니까?

이것은 OrderDate 속성에 바인딩하려고하는 부트 스트랩 UI <input> 요소입니다.

속성에 new Date('02/02/2015')을 사용하는 경우에만 날짜가 올바르게 표시됩니다. 입력 요소가 날짜를 전혀 표시하지 않기 때문에이 'OrderDate : '02/02/2015'를 수행하면 작동하지 않습니다.

<div class="form-group"> 
    <label for="inputOrderRef3" class="col-sm-2 control-label">Order Ref</label> 
    <div class="col-sm-10"> 
     <input type="text" class="form-control" id="inputOrderRef3" placeholder="Order Ref" ng-model="order.OrderRef" maxlength="6" required> 
    </div> 
</div> 

저는 AngularJS v1.3.9 및 jQuery 2.1.3과 함께 Twitter Bootstrap v3.3.2를 사용하고 있습니다.

+3

여기서 JSON이 보이지 않으며 "JSON 날짜"가 의미하는 바를 모르겠습니다. 날짜의 출력 형식을 제어하려면 Date 객체에서 사용할 수있는 다양한 메서드를 사용합니다. 당신의 예제는 또한 당신이 날짜를 안다면 (이 경우'02/02/2015') 왜 당신이 원하는 형식으로 직접'OrderDate'에 쓰지 않는가하는 점에서 사소한 것처럼 보인다. –

+1

json에는 날짜가 없습니다. json은 자바 스크립트 데이터 구조의 텍스트 인코딩입니다. json에서 UTC 날짜를 원하면 인코딩 할 데이터 구조가 UTC 형식의 문자열인지 확인해야합니다. –

+0

당신은 당신의 질문을 잘못 말하고 있습니다. 그러나 당신이 무엇을하려고 하는지를 이해한다면'date.toUTCString()'[https : //developer.mozilla]와 같은 것을 찾고 있습니다. –

답변

0

한 번에 동일한 문제가있어서 momentjs를 시도했습니다.

http://momentjs.com/docs/

+0

내가 실수하지 않는다면 'momentjs'가 내 문제를 실제로 해결할 것이라고 생각하지 않기 때문에 좀 더 명확하게하기 위해 내 질문을 업데이트 한 적이 있습니까? – Intrepid

0

이 어려운 방법을하고 수동으로 URL 인코딩 된 문자열을 생성 할 것이다 encode 기능을 만들어 내 자신의 문제를 해결하십시오.

var order = { 
    OrderRef: '100101', 
    OrderDate: new Date('02/02/2015'), 
    CustomerName: 'ACME Installations Ltd', 
    Value: 525.00, 
    encode: function() { 
     return "OrderRef=" + encodeURIComponent(this.OrderRef) + "&OrderDate=" + encodeURIComponent(this.OrderDate.toUTCString()) + 
      "&CustomerName=" + encodeURIComponent(this.CustomerName) + "&Value=" + encodeURIComponent(this.Value) + 
      "&Invoice=0"; 
    } 
} 
관련 문제