php實現string類型轉換成datetime類型並插入mysql

1.datetime的插入數據格式問題

mmp一個很簡單的問題卻困擾了我一個下午,看了很多教程但是一直調不出來

原來是因爲我對mysql中的datetime類型理解錯誤了!!!

舉個栗子,

我一直錯誤理解爲INSERT INTO  rsys_db.t_schedule values ('1','2019-06-09 00:00:00');

語句INSERT INTO  rsys_db.t_schedule values ('1','20190609000000');可以執行成功

實現了插入數據庫,其中第二個數據是datetime類型的。也就是說,datetime類型插入的數據之間沒有冒號或者分隔符!當插入的數據含有這些東東時是無法插入的!!!

插入後,數據庫中顯示,是數據庫自己對數據處理之後加上的分隔符

 

2.php語言分割、拼接變量(字符串)

1.分割 $x=explode("參數1",參數2);

//第一個參數爲分割的字符,第二個參數爲待分割的字符串,結果保存到數組中

比如:$arr_date=explode(",",$date);//以逗號作爲分隔符,分割$date變量並保存到數組中

舉個栗子:

$val=06/09/2019;

$arr_sdate=explode("/",$val);

$month=$arr_sdate[0];

$day=$arr_sdate[1];

$year=$arr_sdate[2];

=>執行結果爲:$month=06;$day=09;$year=2019;

 

2.拼接 $var=$var0.$var1."xxx"

//以英文句號爲拼接符即可成功拼接

比如:$arr_time[0]=08;$arr_time[1]=00;

$time=$arr_time[0].$arr_time[1]."00";

=>執行結果爲$time=080000

 

3.記錄一下對string時間的處理並插入數據庫(數據庫連接部分省略)

//$val是形如06/10/2019的日期數據,$column是形如12:00的時間數據。

//很明顯它們不符合datetime的類型要求,因此需要先進行字符切割,然後後再拼接起來,形成形如20190610120000的符合datetime類型的數據。

$arr_sdate=explode("/",$val);

$day=$arr_sdate[1];

$month=$arr_sdate[0];

$year=$arr_sdate[2];

$date0=$year.$month.$day;//拼接日期,形成形如20190610的日期數據

$arr_time=explode(":",$column);

$time=$arr_time[0].$arr_time[1]."00";//拼接時間,形成形如120000的時間數據

$date1=$date0.$time;//拼接日期+時間

$change="INSERT INTO `t_schedule`(`tid`,`datetime`) VALUES ('$uid','$date1')";

try

{

    $res=mysqli_query($link,$change);

}

catch(Exception $err)

{

    echo $err->getMessage();

    $dbh=null;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章