你好 stackoverflow 社区。
我开发了一个网络应用程序,其概念是根据过去的时间序列显示历史货币汇率。
例如,用户可以请求从 2020 年 5 月 22 日 13:00 到 2020 年 5 月 26 日 22:00 的汇率。然后我的后端运行一个循环并每小时获取这两个日期时间之间的费率。
数据库中的所有费率都存储在 GMT 时区。
这就是问题所在。假设用户从时区偏移 +10:00 发出请求。因此,如果此用户选择最后日期时间 2020 年 5 月 26 日 22:00,我想我应该从我的数据库中获取 2020 年 5 月 26 日 12:00 的费率,因此减去 10 小时。
可能这听起来很愚蠢,但我坚持这一点。
我的逻辑是什么:
a) 通过前端的 javascript 获取用户时区偏移量
var get_timezone_offset = new Date().getTimezoneOffset();
var hrs = parseInt(-(timezone_offset / 60));
var mins = Math.abs(timezone_offset % 60);
var timezone_offset = hrs + ':' + mins;
b) 将用户时区偏移量发送到我的后端
c) 从我的数据库中获取汇率,并通过 PHP 的 Datetime 对象将存储的日期从 GMT 转换为用户时区偏移量
$date = new \DateTime('2020-05-26 22:00');
$date->modify(-10 hours);
$date->format('Y-m-d H:i:s');
这是正确的吗?我不会向我的用户显示错误的费率。
先感谢您