我有一个表单,其中用户在HTML中输入日期和时间的输入值。输入设置为 type =“text ”,因为我正在使用 jQUERY 插件,用于在输入字段上单击时选择日期。这是一个没有css申请的快速表格。
form.html
$(document).ready(function(){
$("#day").datepicker();
$("#time").timepicker();
});
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css">
<form>
<input type="text" name="day" id="day" autocomplete="off"required >
<input type="text" name="time" id="time" autocomplete="off"required >
<input type="submit" value="submit">
</form>
由于从这个表单传递的值是直接字符串这里是我在php上尝试过的
<?php
if(isset($_POST['submit']));
{
$a = $_POST['day'];
$b = $_POST['time'];
$day = date('d-m-Y',strtotime($a));
echo (gettype($day))//Here it returns string
}
?>
现在这是我在互联网上找到的最常用的方法,我只是想知道它是字符串类型还是实际上是日期类型,其次是如何将字符串转换为时间?
这是MYSQL表看起来像
id |一天|时间
日期列的数据类型设置为日期, name =“day”输入字段中的值进入此
时间列的数据类型设置为时间, name =“time”输入字段中的值进入此
我知道MYSQL函数,例如 STR_TO_DATE ,但是我使用预处理语句来传递值,因此我无法直接将函数传递给它,我的查询看起来像这样:
INSERT INTO table1('','day','time')VALUES('',:dayname,:timestamp);
答案 0 :(得分:1)
我只想知道它是字符串类型还是实际上是字符串类型 日期类型
当您将表单中的数据发送到PHP时,它会以字符串形式出现。
$_POST['day'] = '08/01/2017';
$_POST['time'] = '12:30 AM';
...其次如何将字符串转换为时间...
使用STR_TO_DATE会导致在PDO中绑定时值为NULL,因此您可以执行以下操作来格式化时间和日期:
$dt = DateTime::createFromFormat('d/m/yy', $date);
$formatted_date = $dt->format('Y-m-d'); //YYYY-mm-dd
$formatted_time = date("G:i:s", strtotime("04:25 PM")); //HH:ii:ss
以下是使用PDO语句的示例:
<?php
$date = $_POST['day'];
$time = $_POST['time'];
$dt = DateTime::createFromFormat('d/m/yy', $date);
$formatted_date = $dt->format('Y-m-d'); //YYYY-mm-dd
$formatted_time = date("G:i:s", strtotime($time)); //HH-ii
$PDO = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $PDO->prepare("INSERT INTO table1 (' ', 'day' , 'time') VALUES (' ', :dayname , :timestamp);");
$stmt->bindParam(':dayname', $formatted_date);
$stmt->bindParam(':timestamp', $formatted_time);
$stmt->execute();