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


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.