根据用户时区

时间:2017-02-09 12:42:54

标签: php mysql email

我要求在数据库日期24小时之前生成电子邮件。我将所有日期保存为UTC格式的数据库,并且注册用户来自不同的时区。那么如何编写查询来获取记录在24小时之前,根据各自的时区向用户发送电子邮件。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. 使用TIMESTAMP数据类型,而不是DATETIME数据类型。 TIMESTAMP始终以UTC时间存储在MySQL中。
  2. 为特定用户建立会话时,在存储或检索SET time_zone = 'Asia/Kolkata';值之前,使用TIMESTAMP之类的SQL命令设置用户的时区。从表中检索时,它们将自动转换为当前时区。同样,它们在存储时将被转换为UTC。
  3. 您可以使用SELECT something FROM table WHERE ready_time >= NOW() + INTERVAL 24 HOUR等查询查找记录,并使用结果集发送电子邮件或做您喜欢的任何事情。
  4. 我不知道您将如何确定用户的时区设置。许多系统使其成为用户偏好。但您需要在tz database format中获取它。