你如何从bigcartel的服务器获得当前时间?

时间:2015-06-10 20:26:09

标签: javascript date time liquid bigcartel

有没有办法通过Liquid或JavaScript从bigcartel的服务器获取当前日期和时间?我在我的商店中构建了一些需要具有一致(非客户端)时间源的自定义功能。每页加载时我只需要访问一次。

这是我迄今为止所做的尝试,基于another date-related bigcartel question

var currentDate = new Date({{ 'Today' | date: "%Y, %m, %d, %H, %M" }});
currentDate.setMonth(currentDate.getMonth() - 1);

这确实会检索今天的日期,但在刷新页面时它不会一直更新。真的很感激任何帮助。感谢。

编辑:每次编辑/保存并重新加载特定页面后,液体将获得一个新的日期/时间,或者在第一页加载后已经过了一定的时间(我还没有做足够的测试)准确确定多少时间...也许2或3个小时......或更多?)。

此外,卡住的日期/时间对每个产品页面都是唯一的。例如,如果我在9:30加载产品页面A,在9:32加载产品页面B,那么它们都会在相应的时间停留。这两个页面都是使用相同的代码呈现的。

我之前从未使用Liquid,但我认为它应该在每次加载页面时从服务器检索新数据,类似于PHP。我错了吗?

编辑2:它变得更加怪异。有时我会在给定产品页面的URL末尾附加一个查询字符串(例如?comicID=225)。但是,如果我更改查询字符串中的数字(或者甚至只是输入随机垃圾),它将检索一个新的卡住日期。因此,看起来任何唯一的URL都会在首次​​加载时获得唯一的卡住日期!

1 个答案:

答案 0 :(得分:2)

我最终使用JavaScript创建XMLHttpRequest()以从HTTP响应标头获取当前时间,并且它似乎完全符合我的目的。这是我的工作代码:

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var currentDate = new Date(req.getResponseHeader('date'));