如何将日期与服务器时间同步(Moment.js)

时间:2014-11-14 07:16:50

标签: javascript meteor momentjs

我有这个代码,它就像一个魅力

function muestraDias() { 
var day=0; 
var server = TimeSync.serverTime()
var d= new Date();  
var weekdays = new Array(7);
weekdays[0] = "Domingo";
weekdays[1] = "Lunes";
weekdays[2] = "Martes";
weekdays[3] = "Miercoles";
weekdays[4] = "Jueves";
weekdays[5] = "Viernes";
weekdays[6] = "Sabado";
 for (i=1; i<8;i++){  

          document.getElementById("sub"+i).innerHTML = moment(d).locale("es").format('L');
          day=weekdays[d.getDay()];
          document.getElementById("titulo"+i).innerHTML =day;
          d.setDate(d.getDate() +1);
      }
  }

但它不是很有效,例如如果用户在计算机上的日期错误,该函数将呈现不同的日期,我的模板会中断,所以我想将变量server传递给当前日期但是我的无效日期,我在这里做错了什么?

对于变量服务器,我使用 mizzao:timesync

我也有这个问题,我支持部署我的应用程序让我们说Modulus,服务器将从他们拥有的美国任何地方获得TimeZone,所以它有一种方法在服务器端设置时区?

之类的东西
moment.tz(currentDateVariable, "America/Mexico_city");

1 个答案:

答案 0 :(得分:0)

我不知道TimeSync或那是什么,但我的猜测是TimeSync.serverTime()会返回一个包含servertime的字符串。

但是代码需要一个日期对象(您可以在其上执行getDate()来获取日期,并getDay()来获取日期。

那么在这种情况下您需要做的是将服务器字符串拆分为多个部分(年,月等) 并将其作为参数传递给Date()对象,如下所示:

http://www.w3schools.com/jsref/jsref_obj_date.asp