douwen1313 2019-04-05 17:14
浏览 217
已采纳

如何使用php从数据库中提取日期

I'm trying to create a weekly work schedule. When I try to select the shifts from the database my date value is selecting the current time but the date (Y-m-d) from the table.

This is my code:

while ($row = mysqli_fetch_array($res))
{
          $dt = new DateTime();
          $dt->setISODate($year, $week);

          $fetch_mID = $row['ID_EMPLOYEE'];
          $fetch_fn = $row['Firstname'];
          $fetch_en = $row['Lastname'];
          echo "<tr>";
            echo "<td>" . $fetch_fn . " " . $fetch_en . "</td>";

            do {
              $obj = new ReflectionObject($dt);
              $pro = $obj->getProperty('date');
              $date = $pro->getValue($dt);
              echo $date; //Output = 'Y-m-d H:m:s'

              $shift = $conn->query("SELECT ShiftDate, ShiftStart, ShiftEnd FROM shifts WHERE ID_EMPLOYEE = '$fetch_mID' AND Date(ShiftDate) = '$date'");
              $fetch = mysqli_fetch_array($shift);
              $dt->modify('+1 day');
            } while ($week == $dt->format('W'));

I would expect the $date to output Y-m-d but it outputs Y-m-d H:m:s. And the time is the current time.

  • 写回答

1条回答 默认 最新

  • dousa1630 2019-04-05 17:28
    关注

    The solution is to convert $date to date object and then format the date with the new format Y-m-d.

      $time = strtotime($date);
      $newformat = date('Y-m-d',$time);
      echo $newformat; // output 2019-04-05
    

    You new code seems to b something like :

    while ($row = mysqli_fetch_array($res))
    {
              $dt = new DateTime();
              $dt->setISODate($year, $week);
    
              $fetch_mID = $row['ID_EMPLOYEE'];
              $fetch_fn = $row['Firstname'];
              $fetch_en = $row['Lastname'];
              echo "<tr>";
                echo "<td>" . $fetch_fn . " " . $fetch_en . "</td>";
    
                do {
                  $obj = new ReflectionObject($dt);
                  $pro = $obj->getProperty('date');
                  $date = $pro->getValue($dt);
                  //new code
                  $newformat = date('Y-m-d',strtotime($date));
                  echo $newformat; // output 2019-04-05
                  // end new code
                  $shift = $conn->query("SELECT ShiftDate, ShiftStart, ShiftEnd FROM shifts WHERE ID_EMPLOYEE = '$fetch_mID' AND Date(ShiftDate) = '$date'");
                  $fetch = mysqli_fetch_array($shift);
                  $dt->modify('+1 day');
                } while ($week == $dt->format('W'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c