There is no way to do this with Zero downtime unless you can implement a WAN cluster between the sites. Otherwise, however long it takes to move the dbs is the downtime.
We have done this twice (getting ready for a third time) and I think backup restore is the best bet. You can minimize the time by
1. running a backup on live
2. let live continue to run.
3. copy backup to new server
4. restore on new server (these two steps are probably faster than direct restore).
5. be sure everything ok.
6. run log backup on live
7. copy log backup to new server
8. restore log backup
9. repoint dns.
If you have not downed the db (or set to read only) between 6 and 9, you need to manually "fix" data or it will be lost.
Keep in mind, DNS repoint time depends on your TTL.