首页 > 解决方案 > 如何根据用户时区设置提醒并根据时区发送通知?

问题描述

我需要通知过程背后的逻辑。在我之前的项目中,我成功地做了一个通知功能。但问题是它根据服务器时区发送通知。

假设:

  1. 用户希望在其实际事件(任何事件)发生 1 小时之前收到通知。

  2. 该用户在印度并根据印度时间发出通知。通知时间下午 3:00。

  3. 现在问题启动服务器正在美国运行,如果匹配的通知将发送给用户,则将服务器时间与通知时间匹配。

但不是根据印度时区,这是根据在美国运行的服务器时区发生的。

  1. 它将采用美国的当前时区和数据库中的日期时间存储。

  2. 每分钟设置一个 cron 作业。实际结果。

此通知根据用户时区发送,例如用户来自印度、美国、加拿大和任何地方。但应根据用户时区发送通知。

如需更多说明,请使用谷歌日历事件通知流程。

谁能帮我解决这个问题?

标签: javascriptphpmysqlcron

解决方案


将您的应用程序配置为使用 UTC。

保存日期时间值时,无论用户的时区如何,始终将其保存为 UTC 时区。

然后在您的网站上显示时使用用户的时区从 UTC 转换。

对于通知,根据用户的时区给定一个日期时间值,将其转换为 UTC,然后将其存储到数据库中。这样,存储在数据库中的所有日期时间值始终为 UTC。

然后在您的 cronjob 中,只需根据通知日期时间查找要发送的通知,这样您此时就不必担心用户的时区。


推荐阅读