首页 > 解决方案 > 如何通过 mysql datetime 输入 datetime-local

问题描述

我无法将 datetime mysql 值传递给 datetime 本地输入字段

MYSQL 数据:1995-10-29 08:00:00

阿贾克斯:

function getTransaction(id){
    $.ajax({
        type:'POST',
        dataType:'json',
        data:{id:id},
        url: 'queries/getTransactionInfo.php',
        success:function(e){
            $("#pickup_date").html((e[4]));
            $("#return_date").text(e[5]);

        }
    });
}

php:

$select = $mysqli->prepare('SELECT * from tb_transaction where `id`=?; ');
$select->bind_param('i',$id);
if($select->execute()){
    $result=$select->get_result();
    $id=0;
    while($row=$result->fetch_array()){

        $data[]=$row['requestor'];
        $data[]=$row['requestor_email'];
        $data[]=$row['pickup_location'];
        $data[]=$row['destination_location'];
        $data[]=$row['from_date'];
        $data[]=$row['to_date'];
        $data[]=$row['purpose'];
        $data[]=$row['no_passenger'];

    }
    echo json_encode($data);
}else{

}

html:

<input type="datetime-local" class='form-control' id="pickup_date">

我怎样才能正确通过?我尝试使用 .val 和 .html 但仍然无法正常工作,也尝试使用 Date.parse 但仍然无法正常工作。

标签: javascriptphpjqueryhtmlmysql

解决方案


for 的格式与分隔时间datetime-local类似。https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local2018-06-07T00:00T

在 PHP 中,您可以使用DateTime类来格式化您的时间。https://www.php.net/manual/en/datetime.format.php

这是一个例子:

<?php

$time = new DateTime('1995-10-29 08:00:00');

echo $time->format('Y-m-d\TH:i')
//Output is: 1995-10-29T08:00
?>

在您的 PHP 代码中,

....
....
$timeFormat = 'Y-m-d\TH:i';    

  while($row=$result->fetch_array()){
    $from_date = new DateTime($row['from_date']);
    $to_date = new DateTime($row['to_date']);

    $data[]=$row['requestor'];
    $data[]=$row['requestor_email'];
    $data[]=$row['pickup_location'];
    $data[]=$row['destination_location'];
    $data[]=$from_date->format($timeFormat);
    $data[]=$to_date->format($timeFormat);
    $data[]=$row['purpose'];
    $data[]=$row['no_passenger'];

}
echo json_encode($data);
....

然后它将已经采用正确的格式,因此无需在 Javascript 中对其执行任何操作。

AJAX

....
....
    success:function(e){
            $("#pickup_date").val(e[4]);
            $("#return_date").val(e[5]);

        }

推荐阅读