Reliable Countdown Clock- The countdown timer is synced with the web server
- Everyone will always see the same time on the web site
- The web server is synced with the blockchain time
- You can use the web site clock as the authoritative clock
Technical time. I think you seriously fail to understand Grace Hopper's 11.8inc/ns rule, among others. Every foot, for a photon traveling in a vacuum, just over 1ns has passed. Given 1,000 feet that's 1ms! Hundreds of thousands of feet and that's tenths of a second. The clock users will see on the website WILL be behind by at least that much, depending on electrical distance from the webserver. Electrical distance is anything BUT how the crow flies.
Systems like NTP will use RTT to account for this, but they also have advanced algorithms to discover jitter and other nuances of network lag. One would have a difficult time implementing any of this using JS.
What you should do is use the user's local system clock, but make sure the users know that they need to sync their clock with your public time service, offer NTP and whatever system Winblows uses or Tardus 2000.
The next issue is this concept of syncing with blockchain time. I hope that you mean you are using blockchain.info's NTP service. The timestamp in bitcoin blocks is "known to be fraudulent!" Mining software fudges the clock forwards and backwards to generate more permutations per mid-state, you can look-up the thresholds the reference client enforces but I assure you we are way out of the realm of being tenths of a second.
On top of there there is clock drift that I believe you are completely ignoring. I'm not good at explaining this, so I'll try my best. The meter of most electrical clocks is uniqe, after a long time differences in each clock will begin to become noticeable. Once this is measured it's possible to account for this and adjust, many clocks will need re-adjustment every 24hrs! It's possible to have a clock that needs adjustment every four hours. If your hosted on a VPS make sure not to do any time adjustments, you've got to be on the host because of 'hidden' premeditation.
Let's say you know, I want the clock the be this value after so many MS from 'now'. On a VPS it's impossible to accurately measure those MS, but the big issue is once you'r done measuring time and you go to set the clock. If you'r preempted just then all is lost, by the time you push your clock value out several MS have passed, this will happen regularly without fail. Running NTP on a VPS can be dangerous, you've to make sure it never tries to set the local clock.