1

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

这是我迄今为止尝试过的,基于另一个与日期相关的 bigcartel 问题

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 似乎都会在首次​​加载时获得唯一的卡住日期!

4

1 回答 1

2

我最终XMLHttpRequest()使用 JavaScript 从 HTTP 响应标头中获取当前时间,并且它似乎非常适合我的目的。这是我的工作代码:

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var currentDate = new Date(req.getResponseHeader('date'));
于 2015-06-11T20:01:14.063 回答