Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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
Php 无法显示当前日期和日期前一周之间的值_Php_Mysql - Fatal编程技术网

Php 无法显示当前日期和日期前一周之间的值

Php 无法显示当前日期和日期前一周之间的值,php,mysql,Php,Mysql,我在mysql中遇到了一个问题,那就是如何从当前日期到一周前找到值。 这里我写了一个程序,它应该显示当前日期和日期前一周之间的日期 下面是我的php代码: <?php $hostdb = 'localhost'; $namedb = 'my_db'; $userdb = 'root'; $passdb = 'root'; try { $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);

我在mysql中遇到了一个问题,那就是如何从当前日期到一周前找到值。 这里我写了一个程序,它应该显示当前日期和日期前一周之间的日期

下面是我的php代码:

<?php
$hostdb = 'localhost';
$namedb = 'my_db';
$userdb = 'root';
$passdb = 'root';

try {

  $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
  $conn->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8


$currDate = date('Y-m-d H:i:s');
$date = $currDate ;
// parse about any English textual datetime description into a Unix timestamp
$ts = strtotime($date);
// calculate the number of days since Monday
$dow = date('w', $ts);
//$offset = $dow - 3;
$offset = $dow - date('d');
if ($offset < 0) {
    $offset = 6;
}
// calculate timestamp for the Monday
$ts = $ts - $offset*86400;
// loop from Monday till Sunday
for ($i = 0; $i < 1; $i++, $ts += 86400){
    //print date("Y-m-d l", $ts) ."</br>" . "\n";
$week = date("Y-m-d H:i:s", $ts) ."</br>";

}


  $sql = "SELECT * FROM battery WHERE date BETWEEN " . $date .  " AND " . $week;


  $result = $conn->query($sql);

echo "<table border='1' style='font-family:arial;font-size12px;' cellspacing=1>
<tr>
<th>User Id</th>
<th>Firstname</th>
<th>LastName</th>
<th>EmailId</th>
<th>Date</th>
</tr>";

  while($row = $result->fetch(PDO::FETCH_ASSOC)) {
  echo "<tr>";

  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['emailid'] . "</td>";
  echo "<td>" . $row['date'] . "</td>";

  echo "</tr>";
  }

echo "</table>";

} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();

}

?>

此处,$date表示当前日期,$week表示日期前一周。 我无法在这两个日期之间找到价值。 求你了,我需要帮助。
任何帮助都将不胜感激。

我相信这里的答案可能会有所帮助:

您可以将last30天更改为last7天(如果它只在星期五运行,则为5天):

您可以使用mysql中的方法来完成此操作

SELECT * FROM battery WHERE DATEDIFF(now(), `date`)<=6 AND DATEDIFF(now(), `date`)>=0
从电池中选择*,其中DATEDIFF(now(),`date`)=0

您可以在php中使用DateTime和DateInterval类