An auction system either live or timed runs by the clock. In a live auction, one often runs calls on a bid according to a clock. In a timed auction, you start and end an auction by the clock, and you show the users a countdown timer.
Browser Times Cannot Be Trusted
In a browser, new Date()
gives you the user local time, according to the user's computer local time. As users reside in different time zones, and moreover may have inaccurate computer clock, or they may just intentionally modify that clock, the local time will be different.
Obviously, one cannot let the user observe any time-dependent functionality, and make any time-dependent action, based on a clock which is the same for all users of the auction system.
A Central Clock is Needed
Hence, an auction system logically needs a central clock, and that clock has to be projected to all users in all case where relative times, such as a countdown timer, or absolute times, such as auction start and end times, are observed by the user on a web page. The web page might show absolute times in the user time zone, but the local time has to be derived from the central clock.
Such a central clock has to be implemented at the server, as this is the only place where we can rely on. And needs…