PHP 预输出 datetime-local 函数date()之1970问题

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的数据预输出。

谢谢阅读。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值