2010-05-28 61 views
1

我有一段时间正在以UTC时间发送给我,但我想调整它,使其位于东海岸时间(EST/EDT)的日子外缘。也就是说,我希望用户能够输入以EDT/EST为中心的日期,并使用UTC正确的日期进行查询。PHP时区调整

$start_date$end_date是通过GET变量传递的MM/DD/YYYY格式的日期。

$start_date = date('Y-m-d 00:00:00', $start_date); 
$end_date = date('Y-m-d 23:59:59', $end_date); 

这些日期用于数据库查询,其时间以UTC时间存储。

因此,我希望开始日期是在夏令时的晚上8点或7点,这取决于夏令时,然后再根据夏令时结束于7:59:59或6:59:59。

我该怎么做?

+0

您正在使用哪个数据库? Postgres例如有一个名为“timestamp with time zone”的字段类型,它完全符合你的要求。该数据库将负责您所有的时区转换。 – Kenaniah 2010-05-28 23:27:20

+0

你检查了[date_default_timezone_set()](http://fr.php.net/manual/en/function.date-default-timezone-set.php)函数吗? – 2010-06-03 16:19:35

回答

0

在MySQL中,你可以做到以下几点:

SELECT * FROM tablename WHERE date = DATE_SUB('2010-06-17 00:00:00',INTERVAL 4 HOUR);