Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX时间范围内的PHP/MySQL查找事件_Php_Mysql - Fatal编程技术网

UNIX时间范围内的PHP/MySQL查找事件

UNIX时间范围内的PHP/MySQL查找事件,php,mysql,Php,Mysql,我希望能在这里得到一些帮助,解决一个我已经挣扎了很长时间的问题 我有一个包含事件的MySQL数据库,事件的开始时间存储在UNIX时间中。我需要循环一周中接下来的7天(包括今天),从早上5点到早上4点59分,以查找在该时间跨度内开始的事件 这意味着,我需要找到从1418270400到1418356799的所有事件,然后在两个日期(而不是86400秒)的循环中添加1天 我已经为此挣扎了一段时间,只是无法让我的头围绕着这个。。。有没有一位对PHP有更多技能的好心人可以帮助我 这是我用来计算时间段的代码

我希望能在这里得到一些帮助,解决一个我已经挣扎了很长时间的问题

我有一个包含事件的MySQL数据库,事件的开始时间存储在UNIX时间中。我需要循环一周中接下来的7天(包括今天),从早上5点到早上4点59分,以查找在该时间跨度内开始的事件

这意味着,我需要找到从1418270400到1418356799的所有事件,然后在两个日期(而不是86400秒)的循环中添加1天

我已经为此挣扎了一段时间,只是无法让我的头围绕着这个。。。有没有一位对PHP有更多技能的好心人可以帮助我

这是我用来计算时间段的代码:

$timestamp = time();
$dtNow = new DateTime();
$dtNow->setTimestamp($timestamp);

$beginOfDay = clone $dtNow;

$beginOfDay->setTime(05, 00, 0);

$endOfDay = clone $beginOfDay;
$endOfDay2 = clone $beginOfDay;
$endOfDay->setTime('05, 00, 0');
$endOfDay2->setTime('05, 00, 0');
$endOfDay->add(new DateInterval('P1D'));
$endOfDay2->add(new DateInterval('P7D'));
$endOfDay->modify('1 second ago');
$endOfDay2->modify('1 second ago');
我需要从MySQL数据库获取所有事件,该数据库的时间戳介于$beginOfDay和$endOfDay之间,但低于$endOfDay2

foreach ($days as $day) {
    $date = new DateTime();
    $date->setTimestamp($starting_timestamp); // OR
    $date->setTime(5);

    $date2 = new DateTime();
    $date2->setTimestamp($ending_timestamp); // OR
    $date2->setTime(4, 59);

    $query = "SELECT event.* from events WHERE timestamp BETWEEN($date->getTimestamp(), $date2->getTimestamp())";
// query stuff or what ever you want to do.
}

这只是一个可能对您有用的简单示例,希望能有所帮助。

我建议您使用mysql: 例如:

SELECT * FROM `unixtimestamp` WHERE timestamp > UNIX_TIMESTAMP(NOW()) and timestamp < UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL +7 DAY))
从`unixtimestamp`中选择*其中timestamp>UNIX\u timestamp(NOW())和timestamp
否则我想你可以用这个

<?php
$timestamp = time();
$dtNow = new DateTime(date('Y-m-d H:i:s', $timestamp));

$beginOfDay = clone $dtNow;
$beginOfDay->setTime(05, 00, 0);
echo "begin".$beginOfDay->format('Y-m-d H:i:s'); 

echo "<br>";

$endOfDay = clone $dtNow;
$endOfDay->setTime(04, 59, 0);
$endOfDay->modify('+1 day');
echo "end".$endOfDay->format('Y-m-d H:i:s'); 
echo "<br>";

$endOfWeek = clone $dtNow;
$endOfWeek->modify('+7 day');
$endOfWeek->setTime(04, 59, 0);

echo "week ".$endOfWeek->format('Y-m-d H:i:s'); 
echo $endOfWeek->format('U');die();
echo "<br>";die();

不太明白。有一些PHP代码需要解释吗?问题是,我需要将事件拆分为它们发生的日期。因此,我有今天发生的事件,然后是明天发生的事件——以此类推……将每天的数据存储在一个数组中。