1. 问题简介
最近开始写一个数据管理系统,用的是PHP和MYSQL,相信这个大家一定习以为常。
然后呢web应用程序总躲不开提交表单,提交表达以后总要修改吧,修改的时候是不是表单上应该出现原来的数据,假设表单数据全部存在 $data 里面
html语句嵌入PHP👇
<input name="time" type="datetime-local" id="time" value="<?php echo $data['time']; ?>" >
大家会发现,echo的数据就是不会在表中显示出来,很是反感。我也搜索了很多答案,无非是用JavaScript语句来处理,我反正试了很久没成功。而且直接无脑输出有时候默认变成1970年了,很是怪哉!
2.要使用的函数
函数:date ( format, timestamp )
format 必需。规定时间戳的格式。
timestamp 可选。规定时间戳。默认是当前的日期和时间。
相信以上函数有人查过了,好这里要说的就是timestamp参数,他并不是阿猫阿狗都能接受的,我们的问题就是timestamp传入的参数不规范,PHP中时间是通过unix纪元来计算的,也就是从1970年开始计算到您填的时间的之间的秒数。有兴趣可以输出看看。
那我们就应该把这个数值转换成秒数传入其中就行了,PHP有一个自带函数
strtotime($time);将英文文本日期时间解析为 Unix 时间戳
3.格式问题
对了补充一句,2014-06-01T10:55:33 看这组数据,日子和时间中间还有一个“T”,这至关重要,别忘了加上这个,这个是PHP识别时间的格式。
4.举例
利用这个函数解决问题。以下是举例。
<?php //时间转化的核心
$data['time']="2014-06-01 10:55:33";//经常会没有T,具体情况看一下你们的时间输出长什么样
$time=strtotime($data['time']);//转换成秒
//var_dump($data['time']);
//var_dump($time);
$time=date('Y-m-d',$time)."T".date('H:i',$time); //按照格式赋值给$time
?>
有人问data()函数为什么这么用,百度一下就行了,很简单。我这里主要是为了解决怎么把datetime-local type的数据预输出。
谢谢阅读。