【问题标题】:How to store users timezone in mysql? [duplicate]如何在mysql中存储用户时区? [复制]
【发布时间】:2011-12-02 13:09:17
【问题描述】:

可能重复:
Datatype/structure to store timezones in MySQL

我将仅在我的数据库中存储 UTC 时间,并希望使用 PHP 将时间戳转换为用户的本地时间。

我的问题是,将用户时区存储在数据库中的最佳方式是什么?

IE:-400、-4、-4:00

话虽如此,我知道如何手动计算:

$utc_time = strtotime("2011-10-02 23:00:00");
$my_time = $utc_time - 14400;

echo date($timeformat, $mytime);

我的问题是,从数据库中提取用户的时区后,我不知道是要增加还是减少秒数。这就是我遇到的问题,试图弄清楚如何保存时区以便我可以计算偏移量。

我可以将时区保存为“-14400”,但使用上面的示例,我不能只使用 - 号组合两个字符串来为我做数学运算:

$my_time = $utc_time.$timezone;

那么...如何正确保存时区以完成数学运算?

【问题讨论】:

  • 你为什么不做这样的数学:$my_time = $utc_time - $timezone*3600;
  • 那么如果我把它保存为TIME,那么数学是怎么做的呢?
  • @JoostvanDoorn- 我不知道是 + 还是 - ...这就是我要解决的问题。
  • 数据类型可以是 VARCHAR -> 你可以用字符串做数学运算,因为它代表十进制、八进制、二进制或十六进制。
  • 基本上,如果您将其存储为时区 UTC -1 = -1 那么您应该执行 $my_time = $utc_time + $timezone*3600;如上所述,您可以使用字符串进行计算。您在语句中实际所做的是创建一个包含“{UTC time}{your timezone}”的字符串,因为点 (.) 用于将两个字符串粘合在一起。

标签: php mysql date time


【解决方案1】:

一个位置的时区并不总是相同 - 例如,英国在 3 月和 10 月之间是 BST (GMT + 1)。使用 PHP 支持的时区之一:

http://php.net/manual/en/timezones.php

如果您继续使用数字,请将它们存储为小时或分钟。将 UTC/GMT 以西的时区存储为负数。例如,美国东海岸将是 -5(小时)或 -300(分钟) - 假设它落后 5 小时。

然后,将此添加到时间戳 - 负数或正数将处理其余部分。

// for 5 hours behind when stored as hours (-5)
$now = time() + ($offset * 60 * 60);
// for 5 hours behind when stored as minutes (-300)
$now = time() + ($offset * 60);

【讨论】:

  • 我认为$now = time() + ($offset * 60); 将是$now = time() + ($offset * 60 * 60);
  • @RezaMamun 谢谢,我认为你是对的。我已经更新了我的答案。
【解决方案2】:

时区字符串会比偏移量或小时差更好 因为某些时区会发生变化

http://www.php.net/manual/en/class.datetime.php

http://www.php.net/manual/en/class.datetimezone.php

日期/时间数学:

http://www.php.net/manual/en/class.dateinterval.php

http://www.php.net/manual/en/class.dateperiod.php

别再用php函数了,oop类好多了!

【讨论】:

    【解决方案3】:

    与其将其存储为字符串,不如将其存储为数字?然后你可以简单地将该数字添加到时间戳中。 (对于将减去的时区,该数字可以是负数。)

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 1970-01-01
      • 2011-08-23
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 2013-06-08
      • 1970-01-01
      相关资源
      最近更新 更多