जवाबों:
var seconds = new Date().getTime() / 1000;
.... आधी रात के बाद से आपको सेकंड देगा, 1 जनवरी 1970
Date.now()
युग के बाद से मिलीसेकेंड देता है। उपयोग करने की आवश्यकता नहीं है new
।
यहां संदर्भ देखें : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
(IE8 में समर्थित नहीं है।)
उपयोग new Date().getTime() / 1000
सेकंड प्राप्त करने के लिए एक अधूरा समाधान है, क्योंकि यह फ्लोटिंग-पॉइंट इकाइयों के साथ टाइमस्टैम्प का उत्पादन करता है।
const timestamp = new Date() / 1000; // 1405792936.933
// Technically, .933 would be milliseconds.
एक बेहतर समाधान होगा:
// Rounds the value
const timestamp = Math.round(new Date() / 1000); // 1405792937
// - OR -
// Floors the value
const timestamp = new Date() / 1000 | 0; // 1405792936
फ्लोट के बिना मान भी सशर्त बयानों के लिए सुरक्षित हैं, क्योंकि फ्लोट अवांछित परिणाम उत्पन्न कर सकता है। एक फ्लोट के साथ आपके द्वारा प्राप्त की जाने वाली ग्रैन्युलैरिटी आवश्यकता से अधिक हो सकती है।
if (1405792936.993 < 1405792937) // true
Math.round(new Date() / 1000)
आपकी टिप्पणी के आधार पर, मुझे लगता है कि आप कुछ इस तरह की तलाश कर रहे हैं:
var timeout = new Date().getTime() + 15*60*1000; //add 15 minutes;
तब आपकी जाँच में, आप जाँच कर रहे हैं:
if(new Date().getTime() > timeout) {
alert("Session has expired");
}
// The Current Unix Timestamp
// 1443535752 seconds since Jan 01 1970. (UTC)
// Current time in seconds
console.log(Math.floor(new Date().valueOf() / 1000)); // 1443535752
console.log(Math.floor(Date.now() / 1000)); // 1443535752
console.log(Math.floor(new Date().getTime() / 1000)); // 1443535752
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
jQuery
console.log(Math.floor($.now() / 1000)); // 1443535752
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
ये जावास्क्रिप्ट समाधान आपको आधी रात, 1 जनवरी, 1970 से मिलीसेकंड या सेकंड देते हैं।
IE 9+ समाधान (IE 8 या पुराने संस्करण इसका समर्थन नहीं करते हैं।):
var timestampInMilliseconds = Date.now();
var timestampInSeconds = Date.now() / 1000; // A float value; not an integer.
timestampInSeconds = Math.floor(Date.now() / 1000); // Floor it to get the seconds.
timestampInSeconds = Date.now() / 1000 | 0; // Also you can do floor it like this.
timestampInSeconds = Math.round(Date.now() / 1000); // Round it to get the seconds.
के बारे में अधिक जानकारी प्राप्त करने के लिए Date.now()
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
सामान्य समाधान:
// ‘+’ operator makes the operand numeric.
// And ‘new’ operator can be used without the arguments ‘(……)’.
var timestampInMilliseconds = +new Date;
var timestampInSeconds = +new Date / 1000; // A float value; not an intger.
timestampInSeconds = Math.floor(+new Date / 1000); // Floor it to get the seconds.
timestampInSeconds = +new Date / 1000 | 0; // Also you can do floor it like this.
timestampInSeconds = Math.round(+new Date / 1000); // Round it to get the seconds.
यदि आप इस मामले में कुछ नहीं चाहते हैं, तो उपयोग करने के लिए सावधान रहें।
if(1000000 < Math.round(1000000.2)) // false.
Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000
यह आपको दिन की शुरुआत से मिलीसेकंड देना चाहिए।
(Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000)/1000
यह आपको सेकंड देना चाहिए।
(Date.now()-(Date.now()/1000/60/60/24|0)*24*60*60*1000)/1000
पिछले दिनों के समान ही एक बिटवाइज ऑपरेटर को दिनों की मात्रा को फ़्लोर करने के लिए उपयोग करता है।
1 जनवरी 1970 के बाद से आप सेकंड / मिली सेकंड में समय पाने के लिए एक और तरीके से मिल सकते हैं:
var milliseconds = +new Date;
var seconds = milliseconds / 1000;
लेकिन इस तरह के दृष्टिकोण से सावधान रहें, क्योंकि इसे पढ़ने और समझने में मुश्किल हो सकती है।
बेहतर शॉर्ट कट्स:
+new Date # Milliseconds since Linux epoch
+new Date / 1000 # Seconds since Linux epoch
Math.round(+new Date / 1000) #Seconds without decimals since Linux epoch