0

我正在使用此 javascript 代码将客户端时间与我的服务器时间同步

var offset = 0;

function calcOffset() {
  var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  xmlhttp.open("GET", "http://stackoverflow.com/", false);
  xmlhttp.send();

  var dateStr = xmlhttp.getResponseHeader('Date');
  var serverTimeMillisGMT = Date.parse(new Date(Date.parse(dateStr)).toUTCString());
  var localMillisUTC = Date.parse(new Date().toUTCString());

  offset = serverTimeMillisGMT -  localMillisUTC;
}

function getServerTime() {
  var date = new Date();

  date.setTime(date.getTime() + offset);

  return date;
}

我回来的日期是

 "2013-10-03T16:37:05.568Z"

如何制作这个“2013-10-03 H:i:s”?

4

1 回答 1

3

虽然如果您正在处理一堆日期,使用moment.js是一种更流畅的方法,但这里有一种使用 vanilla JS 的方法:

x = new Date
x.getFullYear() + '-' + x.getMonth() + '-' + x.getDay()  

编辑:

这里是时间和月份和日期的前导零,你可以看到这些额外的东西添加了更多的代码。也许如果您发布另一个问题,详细说明您对 moment.js 的问题,我们将能够帮助修复它:

formatDate(new Date);

function formatDate(d){
  var year = d.getFullYear();
  var month = addLeadingZero(d.getMonth());
  var day = addLeadingZero(d.getDay());
  var hours = d.getHours();
  var minutes = d.getMinutes();
  var seconds = d.getSeconds();
  return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}

function addLeadingZero(n){ return n < 10 ? '0'+n : ''+n }
于 2013-10-03T16:49:52.427 回答