Optimize Clock Update Code To Prevent Bottleneck Resulting In Time Lost
The thing to understand with setInterval() and other timer-based functions in general is that they do not guarantee precise timing.  You request an interval of 60000ms, and your mistake is assuming that what you get is in fact an interval of exactly 60000ms.  

The main trick is to measure the actual amount of elapsed time between intervals, rather than assuming that each interval occurs exactly 60000ms after the previous one.  Do that and you should see better results.

Note that there may also be secondary effects caused by the execution time of your code itself.  To get around that, instead of adding deltas on each invocation you could track the initial starting timestamp at which your script starts running, and then just always compute the total amount of time that has elapsed between that starting timestamp and now, and add that amount to the starting timestamp when displaying the time.  That should give you very accurate output, and it solves the problem of the imprecise timer as well.

Here's a similar JavaScript timer that I coded awhile back that you can use as a reference.