日期范围从PHP EST到UTC的日期开始到结束


Date range from date start to day end in PHP EST to UTC

我有一个以UTC时区存储日期的数据库。我需要运行一个查询来获取日期在今天的开始和结束之间的所有记录。由于数据存储在UTC,而我在EST,我不能只执行y-m-d 00:00:00到y-m-d 23:59:59,因为EST比UTC晚了4小时。如何在PHP中动态构建具有正确日期框架的查询?

我还需要为"上周"answers"上个月"建立一个查询。

mktime在大多数情况下适用于

<?php
$time = mysql_query("select time from timedata where timeID = '1'");
$row_time = mysql_fetch_assoc($time);
$convertedTime = strtotime($row_time['time']);
$hours = 4;
$NewTime = mktime(date('H',$convertedTime)-$hours,date('i',$convertedTime),date('s',$convertedTime),date('n',$convertedTime),date('j',$convertedTime),date('Y',$convertedTime);
echo date('Y-m-d H:i:s',$NewTime);
?>

上周你可以只休7天('j'),上个月只休1天('n')

还要注意设置您的默认时区

date_default_timezone_set('Pacific/Auckland');

http://php.net/manual/en/function.date-default-timezone-set.php

我能够在EST中获得全天的愤怒,如下所示:

$date_today = DateTime::createFromFormat('Y-m-d H:i:s', date('Y') . '-' . date('m') . '-' . date('d') . ' 00:00:00')->add(new DateInterval('PT4H'))->format('Y-m-d H:00:00');
$start = $date_today;
$end = DateTime::createFromFormat('Y-m-d H:i:s', date('Y') . '-' . date('m') . '-' . date('d') . ' 00:00:00')->add(new DateInterval('PT27H'))->format('Y-m-d H:59:59');

我必须创建今天的日期,时间为00:00:00,然后添加4小时(美国东部时间)然后,对于结束日期,我也这样做了,但增加了27小时59分59秒,所以3小时59分,59秒+24小时(全天)