我正在努力找出解决问题的最佳方法。我有一个firebase云功能,可以监听在firebase数据库路径上所做的更改。一旦更改了数据库路径,就会触发云功能并向用户发送通知。
在此云功能中,我将通知的详细信息存储在数据库中(另一条路径),以便用户可以在我的应用中返回并查看过去的通知。
我面临的问题是存储正确的日期和时间。目前,我使用新的Date()函数在云函数中捕获此信息,但这显然是错误的,因为它返回服务器时间。我需要捕获客户端时间(接收通知的人)并将该值存储在数据库中。
问题是,客户可以在任何国家/地区,因此我需要考虑不同的时区。我该怎么做呢?我觉得必须有一个简单的方法,但我只是没有看到它。
===
对于遇到这篇文章寻找解决方案的人,我在这篇文章中找到了解决方案:
Convert UTC date time to local date time
它适用于Firebase Cloud功能代码: - )
答案 0 :(得分:0)
您可以使用时区偏移或带GMT时区的日期从服务器保存日期。由于您有时区偏移,您可以轻松地将其转换为任何时区。
对于前。
var d = new Date('2000-01-01');
// You can save date in GMT timezone like this.
// It will be like 1999-12-31T18:30:00.000Z.
// Currently I am with +5:30 timezone.
console.log(d.toJSON());
// Convert date string back to date object at client side.
var d2 = new Date('1999-12-31T18:30:00.000Z');
console.log(d2.toString());