2013-02-22 3 views
7

में जावास्क्रिप्ट टाइमस्टैम्प में पोस्टग्रेस्क्ल टाइमस्टैम्प को कनवर्ट करना मेरे पास टाइमस्टैम्प कॉलम के साथ एक पोस्टग्रे डेटाबेस है और मेरे पास पाइथन में एक आरईएसटी सेवा है जो डेटाबेस में एक क्वेरी निष्पादित करती है और flot का उपयोग करके ग्राफ़ प्लॉट करने के लिए जावास्क्रिप्ट फ्रंट-एंड पर डेटा लौटाती है ।पायथन

अब मेरी समस्या यह है कि flot स्वचालित रूप से जावास्क्रिप्ट के TIMESTAMP का उपयोग कर तारीख को संभाल सकता है, लेकिन मुझे नहीं पता कि पोस्टग्रे टाइमस्टैम्प को जावास्क्रिप्ट टाइमस्टैम्प में कैसे परिवर्तित करें (हाँ एक टाइमस्टैम्प, यदि आप डॉन ' पायथन में जवाब नहीं पता)। मुझे नहीं पता कि यह सबसे अच्छा तरीका है (शायद रूपांतरण जावास्क्रिप्ट में किया जा सकता है?)। क्या इसे करने का कोई तरीका है?

+0

"जावास्क्रिप्ट टाइमस्टैम्प" जैसी कोई चीज़ नहीं है। जावास्क्रिप्ट 'दिनांक' ऑब्जेक्ट्स हैं, बस इतना ही है। आप 1 9 70-01-01 से टाइमस्टैम्प को मिलीसेकंड में बदलने की कोशिश कर सकते हैं, और जावास्क्रिप्ट 'दिनांक' ऑब्जेक्ट बनाने के लिए उस मान का उपयोग कर सकते हैं। – MaxArt

+0

'आरईएसटी' को लागू करने के लिए आप जो भी लाइब्रेरी उपयोग कर रहे हैं, उसे इसका समर्थन करना चाहिए, इसलिए पहिया को पुन: आविष्कार करने का प्रयास करने से पहले, देखें कि पुस्तकालय इसे बॉक्स से बाहर करता है या नहीं। –

उत्तर

7

date_part का उपयोग करें या एक टाइमस्टैम्प वापस करने के लिए पोस्टग्रेज़ में निकालें।

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

तो फिर तुम सिर्फ इतना है कि पर भेज सकते हैं सीधे से अधिक, यह देखते हुए कि epochसेकंड 1 जनवरी, 1970 के बाद से है, जे एस मिलीसेकेंड, इस प्रकार *1000 चाहता है जबकि। यदि आपको इसे जावास्क्रिप्ट में प्राप्त करने के बाद वास्तव में एक तिथि होने की आवश्यकता है, तो आप new Date(timestamp_from_pg) पर कॉल करके इसे किसी तारीख में परिवर्तित कर सकते हैं।

ध्यान दें कि फ्लोट टाइमस्टैम्प से संख्याओं के रूप में काम कर सकता है, वास्तव में Date ऑब्जेक्ट्स बनाने की आवश्यकता नहीं है।

+0

धन्यवाद रेली मैं यही पूछ रहा था, भगवान का शुक्र है कि आप सभी प्रश्नों को मेरे प्रश्न –

+0

में "दिनांक" के लिए टाइमस्टैम्प बदलने से पहले प्रश्न पढ़ते हैं, आपके बुनियादी ढांचे के आधार पर, यह केवल पोस्टग्रेस से टाइमस्टैम्प प्राप्त करने और समझने के लिए समझ में आता है पायथन में युग में रूपांतरण। व्यक्तिगत रूप से, मैं जितना संभव हो सके डाटाबेस सर्वर पर जितने संसाधनों को मुक्त करने के लिए पाइथन में सभी रूपांतरणों को रखने की कोशिश करता हूं। मुझे पता है कि इस प्रकार का रूपांतरण एक हास्यास्पद मामूली ऑपरेशन है, लेकिन मेरे डेटाबेस सर्वर हमेशा वेब सर्वर से कड़ी मेहनत कर रहे हैं। साथ ही, डेटाबेस के साथ बातचीत करने के लिए आप जो भी उपयोग कर रहे हैं उसके आधार पर (यानी: psycopg2 जैसे ड्राइवर, sqlalchemy जैसे ऑरम्स इत्यादि) जो आप पुनर्प्राप्त करते हैं वह रूपांतरणों के लिए स्ट्रिंग या डेटाटाइम-जैसी ऑब्जेक्ट हो सकता है। –

2

आप JSON पर पाइथन या जावास्क्रिप्ट "डेटाटाइम" ऑब्जेक्ट नहीं भेज सकते हैं। JSON केवल स्ट्रिंग्स, इंट्स और फ़्लोट्स जैसे अधिक बुनियादी डेटा प्रकार स्वीकार करता है।

जिस तरह से मैं आमतौर पर इसे करता हूं उसे पाइथन के datetime.isoformat() का उपयोग करके टेक्स्ट के रूप में भेजता है, फिर इसे जावास्क्रिप्ट पक्ष पर पार्स करें।