मैं जावास्क्रिप्ट में युग के बाद से सेकंड कैसे प्राप्त कर सकता हूं?


152

यूनिक्स पर, मैं date '+%s'युग के बाद से सेकंड की मात्रा प्राप्त करने के लिए चला सकता हूं । लेकिन मुझे एक ब्राउज़र फ्रंट-एंड में क्वेरी करने की आवश्यकता है, बैक-एंड नहीं।

वहाँ जावास्क्रिप्ट में युग के बाद से सेकंड का पता लगाने के लिए एक रास्ता है?

जवाबों:


246
var seconds = new Date() / 1000;

या, एक कम हैकी संस्करण के लिए:

var d = new Date();
var seconds = d.getTime() / 1000;

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

var d = new Date();
var seconds = Math.round(d.getTime() / 1000);

8
var seconds = new Date() / 1000;<- यह किस प्रकार का रहस्यमय जादू है?
मार्टिन विकमैन

3
पुन: रहस्यमय जादू: इन डॉक्स के अनुसार , जावास्क्रिप्ट एक तिथि वस्तु को संख्या में परिवर्तित करना जानता है। इसका मतलब है कि आप Number(new Date())एक संख्या प्राप्त करने के लिए टाइप कर सकते हैं , या यहां तक ​​कि +(new Date()), या संख्यात्मक संदर्भ में किसी भी तिथि उदाहरण का उपयोग कर सकते हैं जैसे कि new Date()/1000और जावास्क्रिप्ट आपके गणित समीकरणों के साथ काम करने के लिए उस दिनांक उदाहरण को संख्या में बदलने में मदद करेगा।
dpmott


39

आप युगों से सेकंड चाहते थे

function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }

उदाहरण का उपयोग करें

foo = seconds_since_epoch();

3
यह उत्तर होना चाहिए क्योंकि यह दशमलव को ध्यान में रखता है।
जेम्स पैक

11

उपरोक्त समाधान इंस्टेंस गुणों का उपयोग करते हैं। एक अन्य तरीका वर्ग संपत्ति का उपयोग करना है Date.now:

var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;

यदि आप चाहते हैं कि time_in_seconds का पूर्णांक हो तो आपके पास 2 विकल्प हैं:

ए। यदि आप C स्टाइल ट्रंकेशन के अनुरूप होना चाहते हैं:

time_in_seconds_int = time_in_seconds >= 0 ?
                      Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);

ख। यदि आप पूर्णांक विभाजन की गणितीय परिभाषा रखना चाहते हैं, तो बस मंजिल को लें। (अजगर का पूर्णांक विभाजन ऐसा करता है)।

time_in_seconds_int = Math.floor(time_in_seconds);

9

यदि आप केवल एक सेकंड के रूप में केवल एक सेकंड की संख्या के बिना चाहते हैं, जो अभी भी मिलीसेकंड का प्रतिनिधित्व करते हैं, तो इसका उपयोग करें:

var seconds = Math.floor(new Date() / 1000);

5

आप एक दिनांक ऑब्जेक्ट (जिसमें वर्तमान समय होगा) बना सकते हैं और फिर getTime()युग से एमएस प्राप्त करने के लिए कॉल कर सकते हैं।

var ms = new Date().getTime();

यदि आप सेकंड चाहते हैं, तो इसे 1000 से विभाजित करें:

var sec = new Date().getTime() / 1000;




0
EPOCH means time from 01 January 1970
var date = new Date();
Following line will return the number of milliseconds from 01 Jaunary 1970
var ms = date.getTime();
Following line will convert milliseconds to seconds
var seconds = Math.floor(ms/1000);
console.log("Seconds since epoch =",seconds);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.