How do I get a timestamp in JavaScript?

Questions : How do I get a timestamp in JavaScript?

I want a single number that represents the current date and time, like a Unix timestamp.

Total Answers: 41 Answers 41


Popular Answers:

  1. Timestamp in milliseconds

    To get the number of milliseconds since Unix epoch, call Date.now:

    Date.now() 

    Alternatively, use the unary operator + to call Date.prototype.valueOf:

    + new Date() 

    Alternatively, call valueOf directly:

    new Date().valueOf() 

    To support IE8 and earlier (see compatibility table), create a shim for Date.now:

    if (!Date.now) { Date.now = function() { return new Date().getTime(); } } 

    Alternatively, call getTime directly:

    new Date().getTime() 

    Timestamp in seconds

    To get the number of seconds since Unix epoch, i.e. Unix timestamp:

    Math.floor(Date.now() / 1000) 

    Alternatively, using bitwise-or to floor is slightly faster, but also less readable and may break in the future (see explanations 1, 2):

    Date.now() / 1000 | 0 

    Timestamp in milliseconds (higher resolution)

    Use performance.now:

    var isPerformanceSupported = ( window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ); var timeStampInMs = ( isPerformanceSupported ? window.performance.now() + window.performance.timing.navigationStart : Date.now() ); console.log(timeStampInMs, Date.now());

  2. I like this, because it is small:

    +new Date 

    I also like this, because it is just as short and is compatible with modern browsers, and over 500 people voted that it is better:

    Date.now() 
  3. JavaScript works with the number of milliseconds since the epoch whereas most other languages work with the seconds. You could work with milliseconds but as soon as you pass a value to say PHP, the PHP native functions will probably fail. So to be sure I always use the seconds, not milliseconds.

    This will give you a Unix timestamp (in seconds):

    var unix = Math.round(+new Date()/1000); 

    This will give you the milliseconds since the epoch (not Unix timestamp):

    var milliseconds = new Date().getTime(); 
  4. var time = Date.now || function() { return +new Date; }; time(); 
  5. I provide multiple solutions with descriptions in this answer. Feel free to ask questions if anything is unclear


    Quick and dirty solution:

    Date.now() /1000 |0 

    Warning: it might break in 2038 and return negative numbers if you do the |0 magic. Use Math.floor() instead by that time

    Math.floor() solution:

    Math.floor(Date.now() /1000); 

    Some nerdy alternative by Derek 朕會功夫 taken from the comments below this answer:

    new Date/1e3|0 

    Polyfill to get Date.now() working:

    To get it working in IE you could do this (Polyfill from MDN):

    if (!Date.now) { Date.now = function now() { return new Date().getTime(); }; } 

    If you do not care about the year / day of week / daylight saving time you need to remember this for dates after 2038:

    Bitwise operations will cause usage of 32 Bit Integers instead of 64 Bit Floating Point.

    You will need to properly use it as:

    Math.floor(Date.now() / 1000) 

    If you just want to know the relative time from the point of when the code was run through first you could use something like this:

    const relativeTime = (() => { const start = Date.now(); return () => Date.now() - start; })(); 

    In case you are using jQuery you could use $.now() as described in jQuery’s Docs which makes the polyfill obsolete since $.now() internally does the same thing: (new Date).getTime()

    If you are just happy about jQuery’s version, consider upvoting this answer since I did not find it myself.


    Now a tiny explaination of what |0 does:

    By providing |, you tell the interpreter to do a binary OR operation.
    Bit operations require absolute numbers which turns the decimal result from Date.now() / 1000 into an integer.

    During that conversion, decimals are removed, resulting in a similar result to what using Math.floor() would output.

    Be warned though: it will convert a 64 bit double to a 32 bit integer.
    This will result in information loss when dealing with huge numbers.
    Timestamps will break after 2038 due to 32 bit integer overflow unless Javascript moves to 64 Bit Integers in Strict Mode.


    For further information about Date.now follow this link: Date.now() @ MDN

  6. var timestamp = Number(new Date()); // current time as number 
  7. In addition to the other options, if you want a dateformat ISO, you can get it directly

    console.log(new Date().toISOString());

  8. jQuery provides its own method to get the timestamp:

    var timestamp = $.now(); 

    (besides it just implements (new Date).getTime() expression)

    REF: http://api.jquery.com/jQuery.now/

  9. console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch

  10. Date, a native object in JavaScript is the way we get all data about time.

    Just be careful in JavaScript the timestamp depends on the client computer set, so it’s not 100% accurate timestamp. To get the best result, you need to get the timestamp from the server-side.

    Anyway, my preferred way is using vanilla. This is a common way of doing it in JavaScript:

    Date.now(); //return 1495255666921 

    In MDN it’s mentioned as below:

    The Date.now() method returns the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.
    Because now() is a static method of Date, you always use it as Date.now().

    If you using a version below ES5, Date.now(); not works and you need to use:

    new Date().getTime(); 
  11. Performance

    Today – 2020.04.23 I perform tests for chosen solutions. I tested on MacOs High Sierra 10.13.6 on Chrome 81.0, Safari 13.1, Firefox 75.0

    Conclusions

    • Solution Date.now() (E) is fastest on Chrome and Safari and second fast on Firefox and this is probably best choice for fast cross-browser solution
    • Solution performance.now() (G), what is surprising, is more than 100x faster than other solutions on Firefox but slowest on Chrome
    • Solutions C,D,F are quite slow on all browsers

    enter image description here

    Details

    Results for chrome

    enter image description here

    You can perform test on your machine HERE

    Code used in tests is presented in below snippet

  12. Just to add up, here’s a function to return a timestamp string in Javascript. Example: 15:06:38 PM

    function displayTime() { var str = ""; var currentTime = new Date() var hours = currentTime.getHours() var minutes = currentTime.getMinutes() var seconds = currentTime.getSeconds() if (minutes < 10) { minutes = "0" + minutes } if (seconds < 10) { seconds = "0" + seconds } str += hours + ":" + minutes + ":" + seconds + " "; if(hours > 11){ str += "PM" } else { str += "AM" } return str; } 
  13. One I haven’t seen yet

    Math.floor(Date.now() / 1000); // current time in seconds 

    Another one I haven’t seen yet is

    var _ = require('lodash'); // from here https://lodash.com/docs#now _.now(); 
  14. The Date.getTime() method can be used with a little tweak:

    The value returned by the getTime method is the number of milliseconds since 1 January 1970 00:00:00 UTC.

    Divide the result by 1000 to get the Unix timestamp, floor if necessary:

    (new Date).getTime() / 1000 

    The Date.valueOf() method is functionally equivalent to Date.getTime(), which makes it possible to use arithmetic operators on date object to achieve identical results. In my opinion, this approach affects readability.

  15. The code Math.floor(new Date().getTime() / 1000) can be shortened to new Date / 1E3 | 0.

    Consider to skip direct getTime() invocation and use | 0 as a replacement for Math.floor() function. It’s also good to remember 1E3 is a shorter equivalent for 1000 (uppercase E is preferred than lowercase to indicate 1E3 as a constant).

    As a result you get the following:

    var ts = new Date / 1E3 | 0; console.log(ts);

  16. I highly recommend using moment.js. To get the number of milliseconds since UNIX epoch, do

    moment().valueOf() 

    To get the number of seconds since UNIX epoch, do

    moment().unix() 

    You can also convert times like so:

    moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf() 

    I do that all the time. No pun intended.

    To use moment.js in the browser:

    <script src="moment.js"></script> <script> moment().valueOf(); </script> 

    For more details, including other ways of installing and using MomentJS, see their docs

  17. function time() { return performance.now() + performance.timing.navigationStart; }
  18. Here is a simple function to generate timestamp in the format: mm/dd/yy hh:mi:ss

    function getTimeStamp() { var now = new Date(); return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':' + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now.getSeconds()) : (now.getSeconds()))); } 
  19. You can only use
  20. If it is for logging purposes, you can use ISOString

    new Date().toISOString()

    “2019-05-18T20:02:36.694Z”

  21. Any browsers not supported Date.now, you can use this for get current date time:

    currentTime = Date.now() || +new Date() 
  22. This seems to work.

    console.log(clock.now); // returns 1444356078076 console.log(clock.format(clock.now)); //returns 10/8/2015 21:02:16 console.log(clock.format(clock.now + clock.add(10, 'minutes'))); //returns 10/8/2015 21:08:18 var clock = { now:Date.now(), add:function (qty, units) { switch(units.toLowerCase()) { case 'weeks' : val = qty * 1000 * 60 * 60 * 24 * 7; break; case 'days' : val = qty * 1000 * 60 * 60 * 24; break; case 'hours' : val = qty * 1000 * 60 * 60; break; case 'minutes' : val = qty * 1000 * 60; break; case 'seconds' : val = qty * 1000; break; default : val = undefined; break; } return val; }, format:function (timestamp){ var date = new Date(timestamp); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hours = date.getHours(); var minutes = "0" + date.getMinutes(); var seconds = "0" + date.getSeconds(); // Will display time in xx/xx/xxxx 00:00:00 format return formattedTime = month + '/' + day + '/' + year + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); } }; 
  23. This one has a solution : which converts unixtime stamp to tim in js try this

    var a = new Date(UNIX_timestamp*1000); var hour = a.getUTCHours(); var min = a.getUTCMinutes(); var sec = a.getUTCSeconds(); 
  24. I learned a really cool way of converting a given Date object to a Unix timestamp from the source code of JQuery Cookie the other day.

    Here’s an example:

    var date = new Date(); var timestamp = +date; 
  25. If want a basic way to generate a timestamp in Node.js this works well.

    var time = process.hrtime(); var timestamp = Math.round( time[ 0 ] * 1e3 + time[ 1 ] / 1e6 ); 

    Our team is using this to bust cache in a localhost environment. The output is /dist/css/global.css?v=245521377 where 245521377 is the timestamp generated by hrtime().

    Hopefully this helps, the methods above can work as well but I found this to be the simplest approach for our needs in Node.js.

  26. For lodash and underscore users, use _.now.

    var timestamp = _.now(); // in milliseconds 
  27. Moment.js can abstract away a lot of the pain in dealing with Javascript Dates.

    See: http://momentjs.com/docs/#/displaying/unix-timestamp/

    moment().unix(); 
  28. As of writing this, the top answer is 9 years old, and a lot has changed since then – not least, we have near universal support for a non-hacky solution:

    Date.now() 

    If you want to be absolutely certain that this won’t break in some ancient (pre ie9) browser, you can put it behind a check, like so:

    const currentTimestamp = (!Date.now ? +new Date() : Date.now()); 

    This will return the milliseconds since epoch time, of course, not seconds.

    MDN Documentation on Date.now

  29. more simpler way:

    var timeStamp=event.timestamp || new Date().getTime(); 
  30. sometime I need it in objects for xmlhttp calls, so I do like this.

    timestamp : parseInt(new Date().getTime()/1000, 10) 
  31. var d = new Date(); console.log(d.valueOf()); 
  32. Get TimeStamp In JavaScript

    In JavaScript, a timestamp is the number of milliseconds that have passed since January 1, 1970.

    If you don’t intend to support < IE8, you can use

    new Date().getTime(); + new Date(); and Date.now(); 

    to directly get the timestamp without having to create a new Date object.

    To return the required timestamp

    new Date("11/01/2018").getTime() 
  33. //if you need 10 digits alert('timestamp '+ts()); function ts() { return parseInt(Date.now()/1000); }

  34. var my_timestamp = ~~(Date.now()/1000);

  35. function getTimeStamp() { var now = new Date(); return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':' + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now.getSeconds()) : (now.getSeconds()))); } 
  36. there are many ways to do it.

     Date.now() new Date().getTime() new Date().valueOf() 

    To get the timestamp in seconds, convert it using:

    Math.floor(Date.now() / 1000) 
  37. Here is another solution to generate a timestamp in JavaScript – including a padding method for single numbers – using day, month, year, hour, minute and seconds in its result (working example at jsfiddle):

    var pad = function(int) { return int < 10 ? 0 + int : int; }; var timestamp = new Date(); timestamp.day = [ pad(timestamp.getDate()), pad(timestamp.getMonth() + 1), // getMonth() returns 0 to 11. timestamp.getFullYear() ]; timestamp.time = [ pad(timestamp.getHours()), pad(timestamp.getMinutes()), pad(timestamp.getSeconds()) ]; timestamp.now = parseInt(timestamp.day.join("") + timestamp.time.join("")); alert(timestamp.now); 
  38. To get time, month, day, year separately this will work

    var currentTime = new Date(); var month = currentTime.getMonth() + 1; var day = currentTime.getDate(); var year = currentTime.getFullYear(); 
  39. time = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))/1000); 

Tasg: javascript, datetime

Answer Link
jidam
  • Unable to run NoraUI mvn verify goal
  • Unable to run my app on emulator in VS Code
  • Unable to run multiple instances of libVLC(MobileVLCKit) in IOS via flutter framework
  • Unable to run make on griddb source on ubuntu 20.04 (building from source)
  • Unable to run latexindent macOS Monterey 12.0.1
  • Unable to run kotlinc-native command
  • Unable to run JUnit Test… Java.lang.ExceptionInInitializerError (Android Studio)
  • Unable to run java with -Xmx > 966m
  • Unable to run ionic cap run android from wsl2 inorder to start android emulator
  • Unable to run Intel HAXM installer: Cannot start process, the working directory does not exist
  • fs
  • Unable to run Google Analytics sample code
  • unable to run flutter run after upgarding to flutter 2.8.0 from 2.5.3
  • Unable to run Django with PostgreSQL in Docker
  • Unable to Run Container Using testcontainers
  • Unable to run ClojureScript Hello World program, Error building classpath. Error reading edn.
  • unable to run client command for apache karaf 4.3.3 through remote server
  • Unable to run c program 2nd time using eclipse
  • unable to run c++ in visual studio code on m1 chipset
  • Unable to run Android Instrumented Tests
  • Unable to run adb, check your Android SDK installation and ANDROID_SDK_ROOT environment variable: …AndroidSdkplatform-toolsadb.exe
  • Unable to run a singlespecific .spec.ts file through angular cli using ng test –include option
  • Unable to run a Mango query
  • Unable to return response back to view in laravel from package
  • Unable to return object reference in std::optional
  • Unable to return NULL in a function that expects an integer return type
  • Unable to return correct change in JavaScript Cash Register
  • Unable to retrieve version information from Elasticsearch nodes. Request timed out
  • Unable to retrieve values from Axios Response data
  • Unable to retrieve dotenv JWT secret Error: secretOrPrivateKey must have a value
  • Unable to resolve your shell environment
  • Unable to resolve token for FCM while implementing Push notification for Xamarin
  • Unable to resolve the request yii
  • Unable to resolve service for type Swashbuckle.AspNetCore.Swagger.ISwaggerProvider
  • Unable to resolve service for type Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger