Respuestas:
var seconds = new Date().getTime() / 1000;
.... te dará los segundos desde la medianoche del 1 de enero de 1970
Date.now()
da milisegundos desde la época. No es necesario usar new.
Consulte la referencia aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
(No es compatible con IE8.)
Usar new Date().getTime() / 1000es una solución incompleta para obtener los segundos, porque produce marcas de tiempo con unidades de punto flotante.
const timestamp = new Date() / 1000; // 1405792936.933
// Technically, .933 would be milliseconds.
Una mejor solución sería:
// Rounds the value
const timestamp = Math.round(new Date() / 1000); // 1405792937
// - OR -
// Floors the value
const timestamp = new Date() / 1000 | 0; // 1405792936
Los valores sin flotantes también son más seguros para las declaraciones condicionales, ya que el flotante puede producir resultados no deseados. La granularidad que obtiene con un flotador puede ser más de lo necesario.
if (1405792936.993 < 1405792937) // true
Math.round(new Date() / 1000)
Según tu comentario, creo que estás buscando algo como esto:
var timeout = new Date().getTime() + 15*60*1000; //add 15 minutes;
Luego, en su cheque, está verificando:
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>
Estas soluciones de JavaScript le dan los milisegundos o los segundos desde la medianoche del 1 de enero de 1970.
La solución IE 9+ (IE 8 o la versión anterior no admite esto):
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.
Para obtener más información sobre Date.now(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
La solución genérica:
// ‘+’ 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.
Tenga cuidado de usar, si no quiere algo como este caso.
if(1000000 < Math.round(1000000.2)) // false.
Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000
Esto debería darte los milisegundos desde el comienzo del día.
(Date.now()-Math.floor(Date.now()/1000/60/60/24)*24*60*60*1000)/1000
Esto debería darte segundos.
(Date.now()-(Date.now()/1000/60/60/24|0)*24*60*60*1000)/1000
Igual que el anterior, excepto que utiliza un operador bit a bit para determinar la cantidad de días.
Puede conocer otra forma de obtener tiempo en segundos / milisegundos desde el 1 de enero de 1970:
var milliseconds = +new Date;
var seconds = milliseconds / 1000;
Pero tenga cuidado con este enfoque, porque puede ser difícil leerlo y comprenderlo.
Mejores atajos:
+new Date # Milliseconds since Linux epoch
+new Date / 1000 # Seconds since Linux epoch
Math.round(+new Date / 1000) #Seconds without decimals since Linux epoch
Para obtener los segundos totales del día de hoy:
getTodaysTotalSeconds(){
let date = new Date();
return +(date.getHours() * 60 * 60) + (date.getMinutes() * 60);
}
Tengo agregar +a cambio que volver a entrar int. Esto puede ayudar a otros desarrolladores. :)