2012-03-03 12 views
30

मैं उच्चचापों का उपयोग कर रहा हूं और यह पता नहीं लगा सकता कि तारीखों के लिए तारीखों को स्वीकार किए जाने वाले उच्चतर तारीखों में रेल तिथि से दिनांक इनपुट क्या होना चाहिए।हाईचार्ट्स जेएस लाइब्रेरी तिथियों के लिए किस प्रारूप को स्वीकार करता है?

मेरी माइग्रेशन फ़ाइल में मैं इस तरह की तारीख भंडारण कर रहा हूँ:

t.date :consumption_date 

मूल्य इस प्रारूप "2012-03-25" में संग्रहीत हो जाता है, और टर्मिनल के लिए जा रहा है और रिकॉर्ड मैं इस मिल पाने के :

=> Sat, 31 Mar 2012 

जब चार्ट प्रस्तुत हुई है, अलग-अलग अंक प्रदर्शन अमान्य तिथि। निम्नलिखित सरणी

[[Sun, 25 Mar 2012, 1158], [Sat, 31 Mar 2012, 1200]] 

प्रारूप है कि उनके प्रदर्शन चार्ट में से एक में उपयोग करता है Highcharts, रेंडर करने के लिए जब डेटा jQuery में प्रस्तुत किया जाता है फार्म की है Highcharts के उत्पादन हो जाता है:

[[Date.UTC(1970, 9, 27), 0 ], [Date.UTC(1970, 10, 10), 0.6 ]] 

मैं कैसे कर सकता है हाईचार्ट्स को सही दिनांक प्रारूप सबमिट करके अमान्य तिथि से छुटकारा पाएं।

उत्तर

33

आंतरिक हाइचार्ट्स तारीखों का प्रतिनिधित्व करने के लिए जावास्क्रिप्ट दिनांक संख्या (1 जनवरी 1 9 70 से मिलीसेकंड की संख्या) का उपयोग करता है। Mozilla reference देखें।

xAxis: { 
    type: 'datetime' 
} 

जब श्रृंखला डेटा निर्दिष्ट करते समय आपको कुछ ही विकल्प हैं (सभी तीन उदाहरण एक ही चार्ट का उत्पादन):

आप पहली बार 'दिनांक' के लिए अक्ष प्रकार सेट करने की आवश्यकता होगी एक धुरी पर दिनांक प्राप्त करने के लिए :

  1. एक प्रारंभ बिंदु स्थापना और अंक के बीच एक निश्चित अंतराल का उपयोग करके

    pointStart: Date.UTC(2012, 2, 6, 10), 
    pointInterval: 1000 * 60 * 60, 
    data: [5, 6, 4] 
    
  2. दिनांक.यूटीसी विधि का उपयोग कर सही तिथि निर्दिष्ट करना। इस तरह से मनुष्य के लिए अपने पठनीय:

    data: [ 
        [Date.UTC(2012, 2, 6, 10), 5], 
        [Date.UTC(2012, 2, 6, 11), 6], 
        [Date.UTC(2012, 2, 6, 12), 4]] 
    
  3. या युग समय सीधे निर्दिष्ट करने:

    [[1331028000000, 5], [1331031600000, 6], [1331035200000, 4]] 
    

उदाहरण पर jsfiddle

+0

मेरे लिए काम करने वाला एकमात्र इनपुट सीधे सीधे एपॉक समय इनपुट कर रहा था। धन्यवाद – Hishalv

4

@eolsson को जोड़ना, युग समय आम तौर पर जिस तरह से है तकनीकी रूप से जाने के लिए, दिनांक() ऑब्जेक्ट जावास्क्रिप्ट हैं, जेएसओएन नहीं, और आप उन्हें उत्पन्न करने वाले ऑफ-द-शेल्फ सीरिएलाइज़र को खोजने की संभावना नहीं रखते हैं।

आप तारीख, भी इस तरह फ़ॉर्मेट करने के लिए, कुछ चाहता हूँ -

xAxis: { 
    type: 'datetime', 
    labels: { 
    formatter: function() { 
     return Highcharts.dateFormat('%e %b', this.value*1000); // milliseconds not seconds 
    }, 
    } 
} 

दिनांक प्रारूपण php style किया जाता है।

संबंधित मुद्दे