best method for implementing a timer

I'm building a device with an Uno that'll have an LCD display showing the length of time (mm:ss) that has elapsed, and then every 5 minutes it'll need to be reset to 00:00 and started again. The catch is that during the period it's showing the time, I also need to be reading a few sensor inputs and outputting some serial data, so I can't simply use a delay for the timer.

Should I just use Timer0 and millis to do some arithmetic, like: if(currentMillis - previousMillis > interval).... so it'll only update the display when a certain interval (1000 millis) has passed, meanwhile the main loop will keep looping and doing other stuff.

or is there a timing library that would be easier to help keep track of seconds and minutes? I'll also have a DS1307 RTC onboard, so should I just poll that every loop to get the current time and then do the math like above?

Should I just use Timer0 and millis to do some arithmetic, like: if(currentMillis - previousMillis > interval).... so it'll only update the display when a certain interval (1000 millis) has passed, meanwhile the main loop will keep looping and doing other stuff.

That is the simplest method, and used often.

or is there a timing library that would be easier to help keep track of seconds and minutes? I'll also have a DS1307 RTC onboard, so should I just poll that every loop to get the current time and then do the math like above?

If you want to learn interrupts, there is a nice library timer (MsTimer2) that will generate a interrupt at whatever time interval you wish. It works well. Arduino Playground - MsTimer2

Lefty

DS1307 also has a 1 second square wave output that can be used to trigger an interrupt, check/post the time when interrupted.