2013-08-12 3 views
3

AngularJS 앱에서 날짜 입력을 만들고 날짜 형식을 지정하는 데 문제가 있습니다. 나는 내 문제를 설명하기 위해 plnkr을 만들었습니다 http://plnkr.co/edit/LbQIPG?p=preview 내 문제는 상관없이 내가 SQL 서버에서 다시 수신하고 날짜 형식의 (나는 plnkr 2013-07-11T00에 두 개의 샘플 날짜를 넣어 것입니다각도 js 날짜 입력 형식

: 00 : 00.000 및 2013-07-11) Javascript Date 객체는 표준 시간대 코드를 적용하고 2012 년 7 월 7 일의 올바른 날짜 대신 07/10/2013을 표시하여 입력란에 내 날짜 표시에 영향을줍니다. 난 단지 데이터베이스에서 실제로 반환 된 날짜를 원한다. 나는 시간대가 아닌 날과 관련있는 날짜와 시간대를 전혀 적용하지 않기를 바란다. ISO 날짜 시간을 가져 와서 입력 날짜에 해당 날짜 문자열을 할당하여 원하는 날짜를 정확하게 표시하려면 사용자 지정 지시문을 만들어야합니까? 아니면 더 나은 해결책이있는 것입니다.

var newDate = $scope.dataBaseData.myDate.toISOString(); 
newDate = new Date(newDate); 
$scope.dataBaseData.myDate= new Date((newDate.getUTCMonth() +1) + "/" +newDate.getUTCDate() + "/" + newDate.getUTCFullYear()); 
+0

SQL 서버에 시간대가 포함 된 문자열을 보내야하며, 정상적으로 DB에 모든 날짜가 UTC로 저장되어야합니다. Javascript와 Angle은 원하는 날짜 + 시간대로 해당 날짜를 표시하는 데 많은 편의를 제공합니다. – teu

답변

0

AngularJS와는 날짜와 시간에 대한 ISO8601 규격을 사용합니다 : 여기가 내가 지시에 내 날짜 형식을 사용해야 할 수도 있습니다 생각 코드의 샘플입니다. JavaScript가 ISO8601 문자열을 올바르게 구문 분석하도록하려면 시간대를 이동해야합니다.

그러나 당신이 콘솔에서 Thu Jul 11 2013 00:00:00 GMT-0400 (Eastern Daylight Time)로 덤프이

$scope.thing1 = new Date(2013, 6, 11); (month is 0 based.) 

같은 날짜 객체를 생성합니다.

날짜 개체가 자동으로 표준 시간대를 선택하고 07/11/2013로 올바르게 렌더링됩니다.

+0

답장을 보내 주셔서 감사합니다. 하루는 실제로 1 기준이며 유일한 월은 0 기준입니다. 그러나이 응답은 본질적으로 제가 게시물의 하단에 제안했던 것과 동일한 해결책입니다. 나는 날짜로부터 각각의 날짜 객체를 추출하고 당신이했던 것과 같은 방식으로 범위의 날짜 객체를 재 할당한다. – mvargos

+0

@mvargos 감사. UTC로 날짜를 반환하도록 API를 만들면 UI가 처리하기가 훨씬 쉬워집니다. – zsong