javascriptdatetime

How to clone a Date object?


Assigning a Date variable to another one will copy the reference to the same instance. This means that changing one will change the other.

How can I actually clone or copy a Date instance?


Solution

  • Use the Date object's getTime() method, which returns the number of milliseconds since 1 January 1970 00:00:00 UTC (epoch time):

    var date = new Date();
    var copiedDate = new Date(date.getTime());
    

    In Safari 4, you can also write:

    var date = new Date();
    var copiedDate = new Date(date);
    

    ...but I'm not sure whether this works in other browsers. (It seems to work in IE8).