Moment.js + Livestamp时间前基于服务器的UTC日期时间

时间:2015-03-09 09:54:57

标签: javascript c# jquery momentjs livestamp.js

我试图显示在我的项目中提出问题的时间表。在我的数据库中,我有一个Datetime列'列出'。当用户发布问题时,我会使用UTC DateTime插入问题。

在客户端,我有Livestamp.jsmoment.js来显示问题的时间标记。

代码:

var then = moment(listed).unix(); // convert to unix time

然后:

s += "</td><td><span data-livestamp='" + then + "'></span>";

问题在于它没有按预期显示时间轴,更多时间会显示。

从服务器返回日期字符串的示例:

2015-03-09T09:16:41

我需要一种方法让livestamp根据服务器的日期时间考虑UTC时间来显示timeago,并考虑当地的UTC时间,但我不知道如何实现这一点。

注意:服务器与客户端(访客)位于同一位置,非常明显。

使用:MySQL,.NET / C#4.5,jQuery / Javascript

1 个答案:

答案 0 :(得分:2)

两年前我遇到过类似的问题,这就是我解决问题的方法:

var localtime = new Date(new Date(listed).getTime() - 
                (new Date().getTimezoneOffset() * 60000));


 var then = moment(localtime).unix(); 

编辑:试过这个

  var localDate = new Date(new Date('2015-03-09T13:56:41').getTime() -
                            (new Date().getTimezoneOffset() * 60000));


var then = moment(localDate).unix(); 
document.getElementById("demo").innerHTML = 
              "Made it : <span data-livestamp='" + then + "'></span>" ;

   //Results: "Made it : 5 minutes ago" as I'm in a +1 timezone