2013-02-22 2 views
7

타임 스탬프 열이있는 postgre 데이터베이스가 있고 파이썬에서 데이터베이스의 쿼리를 실행하고 JavaScript 프런트 엔드에 데이터를 반환하여 flot을 사용하여 그래프를 그릴 수있는 REST 서비스가 있습니다. .postgresql 타임 스탬프를 Python의 JavaScript 타임 스탬프로 변환

이제 flot은 JavaScript의 TIMESTAMP를 사용하여 자동으로 날짜를 처리 할 수 ​​있지만 PostgreSQL 타임 스탬프를 JavaScript TIMESTAMP로 변환하는 방법을 모르겠습니다 (예 : 타임 스탬프, t는 대답을 알고있다). 이 방법이 최선의 방법인지는 모르겠다. (어쩌면 자바 스크립트로 변환 할 수 있을까?) 이것을 할 수있는 방법이 있습니까?

+0

"자바 스크립트 타임 스탬프"와 같은 것은 없습니다. Javascript의'Date' 객체가 있습니다. 1970-01-01 이후로 타임 스탬프를 밀리 초로 변환하고이 값을 사용하여 Javascript 'Date' 개체를 만들 수 있습니다. – MaxArt

+0

'REST'를 구현하기 위해 사용하는 라이브러리가 무엇이든 지원해야하므로, 휠을 다시 발명하기 전에 라이브러리가 상자를 지원하는지 확인하십시오. –

답변

7

date_part을 사용하거나 포스트그레스에서 추출하면 타임 스탬프가 반환됩니다. JS는 따라서 *1000밀리 초, 원하는 반면

select date_part('epoch',mydatefield)*1000 from table; 

은 그럼 그냥, epoch 잰 (1), 1970 년 이후 것을 지적, 직접을 통해 그것을에 보낼 수 있습니다. 실제로 날짜가 필요하면 Javascript로받은 후 new Date(timestamp_from_pg)으로 전화하여 날짜로 변환 할 수 있습니다.

flot은 숫자로 타임 스탬프를 처리 할 수 ​​있으므로 실제로는 Date 개체를 만들 필요가 없습니다.

+0

감사합니다 Ryley 이것은 내가 물어 보는 것입니다. 모든 편집자가 내 질문에서 "날짜"에 대한 타임 스탬프를 변경하기 전에 질문을 읽어 주셔서 감사드립니다. –

+0

인프라에 따라 포스트그레스에서 타임 스탬프를 얻고 Python에서 epoch 로의 변환. 필자는 개인적으로 파이썬의 모든 변환을 가능한 한 데이터베이스 서버에 많은 리소스를 확보하려고 노력합니다. 이런 유형의 변환은 어리석은 사소한 작업이지만, 데이터베이스 서버는 웹 서버보다 항상 열심히 노력하고 있습니다. 또한, 데이터베이스 (예 : psycopg2와 같은 드라이버, sqlalchemy와 같은 orms 등)와 상호 작용하는 데 사용하는 항목에 따라 검색 할 문자열이나 datetime 형식의 변환 객체가 될 수 있습니다. –

2

JSON을 통해 Python 또는 Javascript "datetime"개체를 보낼 수 없습니다. JSON은 String, Ints 및 Floats와 같은 기본 데이터 유형 만 허용합니다.

나는 보통 텍스트로 보내고, 파이썬의 datetime.isoformat()을 사용하여 자바 측에서 구문 분석합니다.

관련 문제