2015-09-27 21 views
-1

我有一些JSON数据创建的时间表示为张贴:“2015-09-28T17:15:23.633”。我需要在我的Chrome扩展弹出窗口中将其表示为与“发布:2秒前”不同的当前时间。从JSON数据转换为当前时间差异

当我每次在我的分机上发起一个事件时,我会得到一个如上所述的时间。 我希望用户看到事件触发与用户当前时间的时差。如“几秒前....../3分钟前”那样。 我可以在c#中做到这一点,但有没有办法在Java脚本中做到这一点? 任何工作示例或链接都会非常有帮助。 在此先感谢。

这是我从例如建议尝试,但它不显示任何东西

//My JSON Data 
"postcreated":{ 
    "name":"test", 
    "created":"2015-09-28T17:15:23.633", 
} 

//in my js to show the time difference 

var jsonData = JSON.parse(myData);     
timeSincePostInSeconds = (Date.now() -Date.parse(jsonData.postcreated.created))/1000 ; 

var timeSincePostInSeconds = document.getElementById('createdAt'); 
+1

Noda Time是一个.NET库。它与JavaScript没有任何关系。 –

+0

此外,你需要显示你已经尝试了什么,什么做了或没有工作。请阅读[我如何问一个好问题?](http://stackoverflow.com/help/how-to-ask) –

+0

@MattJohnson感谢您的反馈意见。我试图通过编辑问题来解释我的问题。 – user12

回答

1

看一看Date.parse()。这会将给定的字符串转换为Date对象。我猜你正在寻找的是这样的:

var timeSincePostInSeconds = (Date.now() - Date.parse("2015-09-27T17:15:23.633"))/1000 

这里会发生什么:Date.parse(dateString)创建日期对象相同Date.now()一样。在对象上使用-运算符将调用此对象的valueOf方法。 Date对象将返回unix时间戳(自1970年1月1日以来的毫秒)。所以,如果你减去dateString现在你会得到以毫秒为单位的差异 - 将这一差除以1000以获得以秒为单位的差异。

+0

'Date.now()'返回自Unix纪元以来的毫秒数。 *完全不依赖于时区。 'Date.parse()'确实如此,但那是不同的。 –

+0

我已经尝试过,但没有显示任何东西。我已经添加了我尝试过的代码和您的建议。 – user12

+0

@ user12:你说的“它什么都不显示”是什么?该代码只是设置一个变量......我不希望它在任何地方显示......该部分取决于你。 –

相关问题