javascript - 如何根据用户时区设置提醒并根据时区发送通知?
问题描述
我需要通知过程背后的逻辑。在我之前的项目中,我成功地做了一个通知功能。但问题是它根据服务器时区发送通知。
假设:
用户希望在其实际事件(任何事件)发生 1 小时之前收到通知。
该用户在印度并根据印度时间发出通知。通知时间下午 3:00。
现在问题启动服务器正在美国运行,如果匹配的通知将发送给用户,则将服务器时间与通知时间匹配。
但不是根据印度时区,这是根据在美国运行的服务器时区发生的。
它将采用美国的当前时区和数据库中的日期时间存储。
每分钟设置一个 cron 作业。实际结果。
此通知根据用户时区发送,例如用户来自印度、美国、加拿大和任何地方。但应根据用户时区发送通知。
如需更多说明,请使用谷歌日历事件通知流程。
谁能帮我解决这个问题?
解决方案
将您的应用程序配置为使用 UTC。
保存日期时间值时,无论用户的时区如何,始终将其保存为 UTC 时区。
然后在您的网站上显示时使用用户的时区从 UTC 转换。
对于通知,根据用户的时区给定一个日期时间值,将其转换为 UTC,然后将其存储到数据库中。这样,存储在数据库中的所有日期时间值始终为 UTC。
然后在您的 cronjob 中,只需根据通知日期时间查找要发送的通知,这样您此时就不必担心用户的时区。
推荐阅读
- xquery - 通过 sql xquery 转换 xml 表
- html - 使用 svg 和 html 进行缩放和定位
- python - 在宠物示例中实施自定义负对数似然损失时遇到问题
- java - FLAG_ACTIVITY_NO_HISTORY 与 FLAG_ACTIVITY_NEW_DOCUMENT 与 FLAG_ACTIVITY_MULTIPLE_TASK
- python - BigQuery - AES_DECRYPT GCM - 无法使用长度为 32 的密钥解密密文
- mysql - 从 MySQL 脚本中查询 Teradata 表
- c# - 如何将不同目录中的文件连接成一个字符串数组
- c# - Why ActualWidth and ActualHeight of an Image returns 0 after Loaded event?
- javascript - 控制台给了我 TypeError .. 不是功能消息
- python-3.x - OSError:无法将文件“name.data”解释为泡菜