데이터베이스에 대한 날짜 제출에 문제가 있습니다. 날짜와 시간이 모두 필요한 경우 데이터베이스의 값을 타임 스탬프로 구문 분석하여 1970 년 이후의 날짜와 시간 값을 밀리 초 단위로 제공합니다. AngularJS 날짜 필터를 사용하여 사용자에게 값을 표시 할 수 있습니다. -친절한 방법.
$filter('date')(1380292078000, 'MM/dd/yyyy hh:mm a'); => 09/27/2013 10:27 AM
그러나이 형식을 타임 스탬프로 사용하면 값을 데이터베이스로 다시 보낼 때 코드에서 오류가 발생합니다. 데이터베이스는 날짜가 다른 형식으로 표시되기를 원합니다.
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss
그래서 두 번째 필터를 추가하여 밀리 초 수의 값 날짜 표현을 변환합니다 (사용자가 값을 변경했을 수 있음).하지만 첫 번째 날짜 표현의 복제본을 얻습니다.
$filter('date')('09/27/2013 10:27 AM', 'yyyy-mm-dd hh:mm:ss') => 09/27/2013 10:27 AM
이것을 테스트하기 위해 작성한 바이올린에 대한 링크가 있습니다. 필터 변환을 서로 겹쳐서 쌓을 수 없습니까? 두 번째 변환의 소스로 사용하기 위해 첫 번째 변환 결과를 밀리 초로 변환 할 생각이 있었지만 날짜 문서에서이를 수행하는 방법을 보지 못했습니다. 그래도 그게 유일한 해결책이라면 내가 뭔가를 채울 수 있다고 확신합니다. Java는 대부분 날짜와 함께 작동하는 더 이상 사용되지 않는 기능을 가지고 있기 때문에 Javascript / AngularJS 측에서 이것을 처리하는 것이 더 간단 할 것이라고 생각합니다.
날짜 필터는 JSON 날짜 문자열에서만 작동합니다 ( source 참조 ).
날짜 개체로 변환하여 문제를 해결할 수 있습니다.
$scope.date2 = $filter('date')(new Date($scope.date), 'yyyy-MM-dd hh:mm:ss')
업데이트 된 바이올린 보기
그러나 ... 서버 측에서이 입력의 유효성을 검사하고 형식을 지정해야합니다. 자바 스크립트 애플리케이션에서 오는 데이터가 올바르거나 예상되는 형식이라고 믿을 수 없습니다. 다시 게시 $scope.date
하고 서버가 데이터베이스 형식으로 포맷하도록 허용하는 것이 좋습니다 . yyyy-MM-dd hh:mm:ss
클라이언트 측 에서 서식을 지정하면 사용자 인터페이스를 데이터베이스 구현에 밀접하게 결합하게되며 이는 일반적으로 나쁜 생각으로 간주됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다