Antworten:
var seconds = new Date().getTime() / 1000;
.... gibt Ihnen die Sekunden seit Mitternacht, 1. Januar 1970
Date.now()
gibt Millisekunden seit der Epoche. Keine Notwendigkeit zu verwenden new
.
Überprüfen Sie die Referenz hier: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
(Wird in IE8 nicht unterstützt.)
Die Verwendung new Date().getTime() / 1000
ist eine unvollständige Lösung zum Abrufen der Sekunden, da Zeitstempel mit Gleitkommaeinheiten erzeugt werden.
const timestamp = new Date() / 1000; // 1405792936.933
// Technically, .933 would be milliseconds.
Eine bessere Lösung wäre:
// Rounds the value
const timestamp = Math.round(new Date() / 1000); // 1405792937
// - OR -
// Floors the value
const timestamp = new Date() / 1000 | 0; // 1405792936
Werte ohne Floats sind auch für bedingte Anweisungen sicherer, da der Float unerwünschte Ergebnisse liefern kann. Die Granularität, die Sie mit einem Float erhalten, ist möglicherweise höher als erforderlich.
if (1405792936.993 < 1405792937) // true
Math.round(new Date() / 1000)
Aufgrund Ihres Kommentars denke ich, dass Sie nach so etwas suchen:
var timeout = new Date().getTime() + 15*60*1000; //add 15 minutes;
Dann überprüfen Sie in Ihrem Scheck:
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>
Diese JavaScript-Lösungen geben Ihnen die Millisekunden oder Sekunden seit Mitternacht, dem 1. Januar 1970, an.
Die IE 9+ -Lösung (IE 8 oder die ältere Version unterstützt dies nicht.):
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.
Weitere Informationen erhalten Sie über Date.now()
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
Die generische Lösung:
// ‘+’ 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.
Seien Sie vorsichtig, wenn Sie so etwas nicht wollen.
if(1000000 < Math.round(1000000.2)) // false.
Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000
Dies sollte Ihnen die Millisekunden vom Beginn des Tages an geben.
(Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000)/1000
Dies sollte Ihnen Sekunden geben.
(Date.now()-(Date.now()/1000/60/60/24|0)*24*60*60*1000)/1000
Wie zuvor, außer dass ein bitweiser Operator verwendet wird, um die Anzahl der Tage zu bestimmen.
Seit dem 1. Januar 1970 können Sie einen anderen Weg finden, um die Zeit in Sekunden / Millisekunden zu ermitteln:
var milliseconds = +new Date;
var seconds = milliseconds / 1000;
Aber seien Sie vorsichtig mit einem solchen Ansatz, da es schwierig sein kann, ihn zu lesen und zu verstehen.
Bessere Abkürzungen:
+new Date # Milliseconds since Linux epoch
+new Date / 1000 # Seconds since Linux epoch
Math.round(+new Date / 1000) #Seconds without decimals since Linux epoch
So erhalten Sie die heutigen Gesamtsekunden des Tages:
getTodaysTotalSeconds(){
let date = new Date();
return +(date.getHours() * 60 * 60) + (date.getMinutes() * 60);
}
Ich habe +
im Gegenzug hinzugefügt , welche in int
. Dies kann anderen Entwicklern helfen. :) :)