datetime - Hur kan jag få sekunder sedan epoken i Javascript?
På Unix kan jag köra date '+%s' för att få antalet sekunder sedan epok. Men jag behöver fråga det i en webbläsarfront-end, inte back-end.
Finns det ett sätt att ta reda på sekunder sedan Epoch i JavaScript?
Svar #1
var seconds = new Date() / 1000;
Eller, för en mindre hackig version:
var d = new Date();
var seconds = d.getTime() / 1000;
Glöm inte att Math.floor() eller Math.round() för att avrunda till närmaste heltal, annars kan du få ett mycket konstigt decimaltal som du inte vill ha:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Svar #2
Prova detta:
new Date().getTime() / 1000
Du kanske vill använda Math.floor() eller Math.round() för att ta bort millisekundbråket.
Svar #3
Du ville ha sekunder sedan epoken
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
exempel användning
foo = seconds_since_epoch();
Svar #4
Ovanstående lösningar använder instansattribut. Ett annat sätt är att använda klassattributet Date.now:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
Om du vill att time_in_seconds ska vara ett heltal har du 2 alternativ:
a. Om du vill vara konsekvent med C-stilens trunkering:
time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
b. Om du bara vill att den matematiska definitionen av heltalsdivision ska gälla, ta bara golvet. (Pythons heltalsdivision gör detta).
time_in_seconds_int = Math.floor(time_in_seconds);
Svar #5
Om du vill ha endast sekunder som ett heltal utan decimaler som representerar millisekunder som fortfarande är kopplade, använd detta:
var seconds = Math.floor(new Date() / 1000);
