Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 JSON创建一个表单以使用“搜索”搜索日期范围;日期时间“;价值_Php_Json_Datetime - Fatal编程技术网

Php JSON创建一个表单以使用“搜索”搜索日期范围;日期时间“;价值

Php JSON创建一个表单以使用“搜索”搜索日期范围;日期时间“;价值,php,json,datetime,Php,Json,Datetime,我试图创建一个表单,搜索JSON的datetime值,并返回用户输入的第一个和最后一个日期之间的信息。我必须承认,我不知道我做的是否正确,到目前为止我还没能让它工作 我的JSON数据如下所示: { "apiVersion": "0.1", "data": { "offset": 0, "limit": 50, "count": 50, "total": 1008, "reports": [ { "type": "STB_

我试图创建一个表单,搜索JSON的
datetime
值,并返回用户输入的第一个和最后一个日期之间的信息。我必须承认,我不知道我做的是否正确,到目前为止我还没能让它工作

我的JSON数据如下所示:

{
  "apiVersion": "0.1",
  "data": {
    "offset": 0,
    "limit": 50,
    "count": 50,
    "total": 1008,
    "reports": [
      {
        "type": "STB_EVENT_TIMED",
        "data": {
          "datetime": "2014-11-04T08:25:07-08:00",
          "originator": "6007",
          "roomNumber": "1474",
          "eventItem": "Watched movie 31008",
          "duration": "P0Y0M0DT0H0M45.000S"
        }
      },
      {
        "type": "ROOM_CHARGE",
        "data": {
          "datetime": "2014-11-04T08:25:07-08:00",
          "originator": "6006",
          "roomNumber": "204",
          "chargeItem": "Premium Services",
          "chargeAmountCents": 495
        }
      },
所以我有了这个表单,在这里我为输入的每个文本字段设置值,并使用GET方法将它们带到TEST.PHP页面中。用户以“2014-11-04”格式输入房间号以及第一个和最后一个日期


在我格式化数据的PHP脚本中,我试图创建一个for循环,它采用
$I=$first\u date$我您似乎漏掉了一行
endfor
来匹配

代码中第二个可能的问题是($i=$first\u date;$i=$last\u date;$i++)的循环
-如何在网页上输入日期?(我看到您使用的是$_GET)您确定它们将是两个数字,如20141031和20141107吗?如果是这样的话,循环将给出不存在的日期,如20141099,并且价格计算可能是错误的


第三个可能的问题是将($i=$first\u date;$i=$last\u date;$i++)的循环
放入
-您的表将有许多列,而不是许多行。

这在我看来并不正确:“for($i=$first\u date;$i=$last\u date;$i++):”-它不应该更像“for”吗($i=$first_date;$i@peaceoutside哦,是的,我改变了。我会更新我的问题。即使代码运行正常,它似乎仍然无法正常工作。我不确定它是否编写正确。您是否收到错误消息?到底出了什么问题?@peaceoutside它将使所有事件加倍。如果2014-11-02发生4个事件,我运行t他编码,它在2014-11-02上带回8个事件。实际上它工作不正常,因为它没有带回用户选择的日期。例如,$first_date=2014-11-02和$last_date=2014-11-03,我的代码在所有事情上都加倍,并带回所有数据,包括其他日期,如2014-11-04。哈哈,该死。好的,谢谢给你小费,我会坚持的。
if(isset($_GET['submit_search'])){ 
    $room_number = $_GET['id'];
  $first_date = $_GET['first_date'];
  $last_date = $_GET['last_date'];
}
    <?php $matchFound = false; ?>
<?php foreach($output1['data']['reports'] as $reporting): ?>
      <?php if($reporting['type'] == "ROOM_CHARGE" && $reporting['data']['roomNumber'] == $room_number): ?>
        <?php for ($i=$first_date; $i<=$last_date; $i++): ?>
      <tr>
          <td><?php echo 'Room Charge'; ?></td>
          <td><?php echo substr($reporting['data']['datetime'], -26, 10) ?></td>
          <td><?php echo substr($reporting['data']['datetime'], -14, 8) ?></td>
          <td><?php echo ($reporting['data']['roomNumber']) ?>  </td>
          <td><?php echo ($reporting['data']['originator']) ?>  </td>                            
          <td><?php echo ($reporting['data']['chargeItem']) ?></td>
          <td><?php echo number_format(($reporting['data']['chargeAmountCents'])/100, 2, '.', ',') ?></td>
          <td>-</td>              
      </tr>
        <?php endfor; ?>
      <?php elseif($reporting['type'] == "STB_EVENT_TIMED" && $reporting['data']['roomNumber'] == $room_number): ?>
        <?php for ($i=$first_date; $i<=$last_date; $i++): ?>
        <tr>
          <td><?php echo 'Event'; ?></td>
          <td><?php echo substr($reporting['data']['datetime'], -26, 10) ?></td>
          <td><?php echo substr($reporting['data']['datetime'], -14, 8) ?></td>
          <td><?php echo ($reporting['data']['roomNumber'])?>  </td>
          <td><?php echo ($reporting['data']['originator']) ?>  </td>                     
          <td><?php echo ($reporting['data']['eventItem']) ?></td>
          <td>-</td>   
          <td><?php echo substr($reporting['data']['duration'], -10, 2) ?>:<?php echo substr($reporting['data']['duration'], -7, 2) ?>:<?php echo substr($reporting['data']['duration'], -4, 2) ?></td>                
      </tr>
        <?php endfor; ?>
       <?php endif; ?>
    <?php endforeach; ?>