这是我的第一个问题,希望您能帮助我。
我正在做一个系统,在这个系统中,我有一个名为"fec"的表,在表"fec"上手动插入一个日期,格式为"22/05/2014 23:30",日期必须手动写入强制性(所以我想要)。
我有在查询:
SELECT * FROM table WHERE fec < = NOW ()
我想实现的是:把什么放在未来的日期,查询结果会显示,直到你得到的日期(门票到节目跨度30分钟)。
问题是:查询需要PC的时间,当日期到达时,显示基于当前PC时间的查询(我猜这使得NOW ()
)。因此,它不会同时显示给所有用户,因为根据一天中的时间,这可能会改变信息,用户将看到其他一些更早或更晚,这取决于。
我想要实现的是:查询是< = the server date
。这样所有的人都会同时看到帖子。(我确信NOW ()
是基于PC时间,因为改变PC上的时间,我可以改变查询中显示的结果,这就是我想要避免的)。
我希望你能理解,解释起来很复杂,我希望你能帮助我,提前谢谢你。
您的SQL服务器和PHP服务器可能不相同,因此NOW()函数返回的时间可能与PHP中的time函数不同。
你需要比较它们。
MySQL:
SELECT NOW()
在PHP中运行:
echo date('Y-m-d H:i:s');
并确保它们完全相同。
你说的"PC时间"是指用户的时钟吗?事实并非如此。mysql(我确信NOW()是基于PC的时间作为改变时间上的时间PC我可以改变查询中显示的结果,这就是我要避免)。
now()
命令将为服务器提供时间,只有您或系统管理员可以更改。对于now()
,所有用户都将得到相同的结果,无论他们的时区或时钟设置如何。
如果您希望now()
命令给出一个时区的日期,而不是默认时区,您可以使用:SET time_zone = 'America/New_York';
(在引号中插入您自己的时区)