2017-08-13 15 views
-1

日付と時刻の入力値をHTMLで入力するフォームがあります。入力はtype = "text"に設定されています。私はjqueryプラグインを使用して、入力フィールドをクリックすると日付を選択します。ここにはCSSの適用がないフォームの簡単なスナップがあります。PHPで別々に日付と時刻を変換してMYSQLテーブルに挿入する方法

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 
    if(isset($_POST['submit'])); 
    { 
    $a = $_POST['day']; 
    $b = $_POST['time']; 
    $day = date('d-m-Y',strtotime($a)); 
    echo (gettype($day))//Here it returns string 
    } 
?> 

今PHPに今まで試みているものですこれは私がインターネット上で見つけた最も一般的な方法であり、私はただ知りたいかどうかそれは文字列型か実際に日付型です、第2に文字列を時間に変換する方法は?

これは

IDのように見えるMYSQLテーブルで|日|一日の欄には日付に設定されたデータ型を持っている時間

は、名=「日」入力フィールドから値がこの

に入る時間の欄には、時間に設定されたデータ型を持っています名=「時間」入力フィールドから値がこの

に入る私は、このようなSTR_TO_DATEとしてMYSQL機能の認識していますが、私は準備statemを使用しています私のクエリは次のようになります:

INSERT INTO table1( ''、 'day'、 'time')VALUES( ''、:dayname、 :タイムスタンプ);

+0

申し訳ありませんが、正確に何をしたいのですか?あなたがデータベースに保存する必要のあるフォーマットを教えてください。 –

+0

あなたの日付と時刻を1つのunixtimestampとして保存することをお勧めします。 $ timestamp = strtotime($ a。 ""。$ b); 操作がはるかに簡単です。 – Dimash

+0

@ YagnikDetroja私は日付と時刻両方の入力フィールドから値を格納する必要があります。しかし、日付データ型として日付入力フィールドを格納する必要があります。時間データ型としての時間.Withは両方の文字列です –

答えて

1

私はちょうどそれが文字列型であるか、あなたがPHPにフォームからデータを送信するとき、それは実際に

date型であるかどうかを知りたい、それは文字列としてでてきます。第二に、時間に文字列を変換する方法を

$_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(); 
+0

それは完璧に働いた!! :) –

関連する問題