如果用户将提醒通知时间准确设置为上午 8 点
,那么即使他移至不同的时区,他也应该在
。 上午 8 点
准确地收到通知
我的意思是,即使之后他搬到了具有不同时区的任何其他国家/地区,他也应该在该国家/地区早上 上午 8 点
准确地收到通知。
为了发送通知,我使用在 UTC 时区
e 运行的 CRON
。
考虑这个例子,用户的提醒时间是 IST (+5:30)
上午 8 点,我将 UTC 时间 2:30
存储到数据库中。但如果他移至 EDT (-4:00)
时区会怎样?而且我也有大量的用户数据。
考虑到我必须使用 PHP 执行该操作并且数据库是 MySQL
,请提出解决方案。
最佳答案
我将通过 CRON
在服务器上执行所有通知操作。让我们想象一个简单的例子:
1) 您居住在采用 GMT+3
时区的国家 A。现在是 14:00 GMT+3
。您在B 国召开 session ,时间为GMT+1
。
2) 您在该国家/地区的 session 时间为 16:00 GMT+1 或 18:00 GMT+3
。距离 session 还有 4 个小时。
3) 您在申请中预约了 18:00 GMT+3
的 session 。服务器中的所有约会均保存为 GMT+0
,因此该约会保存为 15:00 GMT+0
。
4) 让我们假设您传送到 session 所在国家/地区,现在时间为 12:00 GMT+1
。 4 小时过去后(16:00 GMT+1、18:00 GMT+3、15:00 GMT+0
),无论您更改时区,服务器仍会收到通知。由于服务器会将您的约会保存为 GMT+0,并且每隔(假设 5 分钟)检查一次 CRON
作业(如果某人的约会到期)。
另一方面,如果您想在客户端上执行检查,则应始终将客户端的日期时间转换为服务器上保存的任何格式,然后与服务器进行检查。
关于php - 如果使用 PHP 用户的时区发生更改,如何处理存储在数据库中的用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50061106/