清理 JavaScript 时间戳

Clean up JavaScript timestamp

本文关键字:时间戳 JavaScript 清理      更新时间:2023-09-26

我正在使用这个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"?

虽然使用

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 }