关于unix时间戳

时间:2014-02-04 10:38:19

标签: php mysql date unix-timestamp

我已经制作了一个带有日期选择器的表单,所有表格都很好,一切都被发送并保存在数据库(MySQL)上。

我的问题是$unix_time是一种固定格式吗?我的意思是unix_time总是会在同一时区保存,或者只是设置为用户输入的内容。

这是一个让我更容易解释我的意思的例子。

我住在英国,我在2014-02-05 09:59:00发布了该表单,并将其作为2014-02-05 09:59:00保存到数据库。

其他人在同一时间发布表单并且他们住在美国。他们发布的时间是2014-02-05 04:59:00,比英国时间晚了5个小时。

是否会将2014-02-05 09:59:002014-02-05 04:59:00发布到数据库。

这是我的代码之一$ unix_time

$reg_start = $_POST['reg_start'];
$unix_time = strtotime($reg_start);
$date1 = date("Y-m-d H:i:s",$unix_time);

感谢您阅读

3 个答案:

答案 0 :(得分:1)

它依赖于mysql服务器时区

例如格林威治标准时间(GMT)是标准时区

和mysql服务器同时执行的任何操作

答案 1 :(得分:1)

$ unix_time除非您要求用户设置时区,否则它不会统一到一个时区。 如果您有时间和时区,则必须切换到DateTime对象

$reg_start = $_POST['reg_start'];
$unix_time = strtotime($reg_start);

$reg_timezone = $_POST['reg_timezone'];

$date1 = new DateTime($unix_time, new DateTimeZone($reg_timezone));

然后你的日期会是这样的:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

答案 2 :(得分:1)

为什么不在表格中创建一个给出当前时间戳的字段。

https://dev.mysql.com/doc/refman/5.5/en/datetime.html

来自doc:

  

MySQL将TIMESTAMP值从当前时区转换为UTC   存储,并从UTC返回到当前时区进行检索。   (对于其他类型,例如DATETIME,不会出现这种情况。