It's not as simple as using the server's time as the source and the local clock to advance. The problem with that approach is timezones. Doing it in JS you can't get the locale, only the current clock's UTC offset. If the user's time is set wrong, the timezone (and UTC offset) may be as well, Also, time differences may cause weird effects around the daylight savings switchover time as the local clock will change it's UTC offset earlier or later than expected. The problem with using an IP to do it is that the IP that the server sees may be in a completely different timezone to the user. Proxys, VPNs and NAT could all cause that issue.
The GP is right, it's pretty much impossible to get right. It's much better to let the only thing that knows how to work out the right time do it, the user.