I reboot one of my ar300m routers, that is being used as a VPN server, daily using something similar to this:
30 10 * * * sleep 70 && touch /etc/banner && sync && reboot
The startup time that the router starts with, changes everyday to the timestamp I set on the file /etc/banner using the touch command. The sleep 70 && touch /etc/banner is to make sure the router time is set to be after the reboot time, or it is possible to get the router stuck in a reboot loop.
See:
Once the WAN comes up, the time on the router jumps forward to the correct time.