Google 上的操作时间与我的本地时间不匹配



我正在尝试使用node.js firebase云功能和Dialogflow开发谷歌助手所以当我尝试console.log来测试它的样子时,当我部署一切都很好,但是当我在模拟器上测试它时,句子中的时间与我的当地时间不匹配,例如它说它是上午11点,而在我的国家是18:00。谁能告诉我怎么修理它?

如果你使用Firebase的Cloud Functions, webhook时间将被设置为GMT时区(+0)。这在某些情况下对一致性很有用,但缺点是它不能保证反映客户端。

在我们最近发布的位置示例中,我们使用一个新的timezone字段来获取客户端的时区。有了这个,再加上GMT时区,你就可以使用像spacetime这样的库来获取用户的本地时间。

const spacetime = require('spacetime');
app.handle('location_granted', (conv) => {
const {id} = conv.request.device.timeZone;
let localTime = spacetime(new Date());
localTime = localTime.goto(id); // Set timezone
conv.add(`The Local Time is ${localTime.format('{time}')}.`)
});

最新更新