【发布时间】:2019-10-16 08:56:43
【问题描述】:
我有一个聊天程序,当用户发送聊天时,会在 mySQL 中创建一个自动时间戳。显示聊天记录时,我需要根据每个用户所在的时区调整所有时间戳...
即。
加利福尼亚有人看到:
Bob: Hi (May 30 2019 10:00 AM)
Rob: Bye (May 30 2019 10:01 AM)
芝加哥有人看到:
Bob: Hi (May 30 2019 12:00 AM)
Rob: Bye (May 30 2019 12:01 AM)
意味着我不能将时间戳存储在考虑时区的数据库中,否则所有用户都会看到如下内容:
(假设 bob 在加利福尼亚,Rob 在芝加哥,并且消息发送间隔 1 分钟)
Bob: Hi (May 30 2019 10:00 AM)
Rob: Bye (May 30 2019 12:01 AM)
所以当我提取日期/时间时,这是我使用的 php 代码:
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<label style = 'font-size:1.1vw';>".date('M j Y g:i A', strtotime($row['time']))."</label>"."<br>";
}
} else {
}
$conn->close();
PHP 解决方案对我来说是最理想的,但我也愿意实施 javascript 或 jQuery 解决方案。
(PS - 我不知道 mySQL 存储的是哪个时区,但它不是我当前的时区......所以脱离我当前时区的时间偏移解决方案需要某种解决方法)。
【问题讨论】:
-
看看Carbon