清理JavaScript时间戳

时间:2013-10-03 16:43:49

标签: javascript

我正在使用此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”?

1 个答案:

答案 0 :(得分: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 }