2014-08-27 100 views
0

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

我还需要为“上周”和“上个月”构建查询。

回答

0

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

+0

这有助于本周范围 – ecorvo 2014-08-28 14:01:07

0

我能得到的在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小时(用于EST) 为我做了同样的结束日期,但补充27小时和59分59秒,所以3小时59分钟,59秒+ 24小时(全天)

相关问题