JavaScript: サーバーの時間を取得する

問題があるとすれば、

  1. 同期で行っていること
  2. リクエスト返ってくるまでの時間差を加味したこと
//サーバーの時間を取得する
function getUTCDateByServer () {
  let xhr = new XMLHttpRequest(), tm0, tm1, tm2;

  xhr.open("GET", "#", false);
  tm0 = new Date; xhr.send (null);
  tm1 = new Date (xhr.getResponseHeader('Date'));
  tm2 = new Date;

  return new Date ((+tm1) + ((+tm2)-(+tm0)) / 2);
}