2012-10-16 49 views
-2

我有一个网站,用户(在不同的时区)可以在数据库中创建新的记录,我目前有每个记录与它创建时间的时间戳记录。 。我在EST时区,但是当我查看我在网站上创建的记录时,他们在MST中显示时间,这也恰好是服务器时区...当我查看数据库中的记录时,时间戳字段不是转换为utc,而是转换为mst ...我注意到当我从phpmyadmin插入记录时,我使用datepicker并选择18:35:01,但是当我查看记录后它被插入,它显示15:35:01 !!!这是非常令人沮丧的,我一直在阅读周围的时间戳字段应该自动转换为utc,这是我的不在做的......另一件事是,我目前使用日期函数来格式化时间戳,它显示在00- 00-00 00:00:00格式,这是一段时间给我错误,所以我开始使用strtotime,这可能是问题的一部分...我不知道...当记录被插入到数据库我是对值使用null,所以它会自动使用当前的本地时间......但事实是,不同时区的人会创建记录,而不是查看它们的人......所以我需要对所有这些进行调整......任何关于我在做什么错误的建议?时间戳显示服务器时间,而不是当地时间

+3

我存储我所有的东西作为时代和使用JavaScript的用户显示其本地时间所用的时区。据我所知,PHP不能自动找出用户在什么时区。 – romo

+0

我如何将它存储为时代? – user1751581

+0

在PHP'$ epoch = time();' – romo

回答

0

你可以设置你的PHP脚本

date_default_timezone_set('America/Los_Angeles'); 

View the PHP Manual for more details

+0

我曾试过,但它不会改变时间...我认为它是因为我从数据库中已经在错误的时区的字符串... – user1751581

+0

不要将您的时间戳存储为字符串 - 那里是用于记录时间的日期和时间类型。无论如何,如果时间存储在数据库中,您也可以存储时间偏移量。 –

+0

但是,什么使用时间戳数据类型?我将它存储为一个时间戳数据类型,但在PHP中,我使用strtotime格式化日期...但它显示服务器时间出于某种原因 – user1751581

相关问题