php实现string类型转换成datetime类型并插入mysql

目录

1.datetime的插入数据格式问题

2.php语言分割、拼接变量(字符串)格式化日期,形成符合datetime类型的数据并准备插入数据库

1.分割 $x=explode("参数1",参数2);

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

3.记录一下对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时间的处理并以datetime类型插入mysql(数据库连接部分省略)

//$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;

}

 

实现效果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值