2012-06-17 15 views
11

मैं पिछले 24 घंटों में कुछ डेटा दिखाने के लिए हाईचार्ट्स का उपयोग करने की कोशिश कर रहा हूं। चार्ट को प्रारंभ समय की आवश्यकता होती है जब आप एक्स अक्ष के लिए समय का उपयोग इस उदाहरण में करते हैं Highcharts time example। मैं यह समझ नहीं सकता कि इसे 24 घंटे पहले शुरू करने के लिए कैसे बताना है, उदाहरण के लिए, अगर समय 18 वीं बजे 22:34 बजे था, तो मैं इसे 17:34 बजे 22:34 बजे शुरू करना चाहता हूं। मैं समय और तारीख से संबंधित कोड के साथ बहुत अच्छा नहीं हूं और जावास्क्रिप्ट भी मेरा मजबूत बिंदु नहीं है। मुझे विश्वास है कि मुझे कुछ आउटपुट होने की आवश्यकता होगी: pointStart: Date.UTC(2012, 5, 17, 22, 34) उपरोक्त उदाहरण के लिए, लेकिन मुझे यह सुनिश्चित नहीं है कि तिथि() से इसे कैसे प्राप्त किया जाए।जावास्क्रिप्ट रिश्तेदार समय 24 घंटे पहले आदि समय

उत्तर

20

आप टाइम स्टांप का उपयोग के रूप में आप उन लोगों के साथ गणना कर सकते हैं चाहिए।

इस प्रकार आप वर्तमान टाइमस्टैम्प प्राप्त करते हैं: Math.round(new Date().getTime()/1000) कृपया ध्यान दें कि यह कंप्यूटर स्थानीय समय है।

अब आप इस तरह 24 घंटे पहले टाइमस्टैम्प प्राप्त कर सकते हैं:

var ts = Math.round(new Date().getTime()/1000); 
var tsYesterday = ts - (24 * 3600); 

कृपया इस बेला देखें: http://jsfiddle.net/Mjm7V/

संपादित करें: के रूप में निक सही ढंग से कहा, Date#getTime यूटीसी टाइमस्टैम्प रिटर्न (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime)

+0

धन्यवाद, मुझे नहीं पता था कि मैं टाइमस्टैम्प का उपयोग कर सकता हूं। – Totoro

+0

"कृपया ध्यान दें कि यह कंप्यूटर स्थानीय समय है।" उत्तर में अस्वीकरण सही नहीं है .. दिनांक # getTime यूटीसी टाइमस्टैम्प है https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime – Nick

2

बस तारीख से 24 घंटे में मिलीसेकेंड की राशि घटाना:

new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000) 
+0

क्यों downvotes, क्या इस समाधान के साथ गलत? – priestc

+0

यह समाधान सापेक्ष/चालू समय से 24 घंटे नहीं दिखा रहा है, लेकिन एक विशिष्ट, हार्ड-कोडेड समय से .. और सवाल अब से 24 घंटे पहले प्राप्त हो रहा था। – Nick

26

यह वास्तव में काफी सरल है:

var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000)); 

बस वर्तमान टाइमस्टैम्प शून्य के 24 घंटों के मूल्य के साथ एक नया Date बनाएं।

(24 घंटे के प्रत्येक घंटे में 60 मिनट प्रत्येक मिनट प्रत्येक दूसरे में 1000 मिलीसेकेंड से गुणा में 60 सेकंड से गुणा से गुणा)

1

24 घंटे पहले:

new Date(Date.now() - 86400 * 1000).toISOString()

  1. अब: new Date().toISOString()
  2. आउटपुट: '2017-02-04T09:15:25.233Z'
  3. युग के बाद 0 सेकंड सेकंड देता है।
  4. घटाना 86400 एक दिन में कई बार 1000 में सेकंड मिलीसेकेंड में बदलने के लिए
  5. आउटपुट: '2017-02-03T09:14:11.789Z'
संबंधित मुद्दे