PHP如何将datetime字符串转换为bigint数值及相关报错解决
PHP datetime字符串转拼接格式bigint报错解决方案
报错原因
date() 函数的第二个入参要求为 Unix时间戳(int类型),你直接传入字符串格式的日期变量$data,不符合参数类型要求,因此触发类型错误。
正确实现方案
有两种常用实现方式,推荐第二种指定格式的写法,兼容性更强:
方案1:搭配strtotime()转换
先用strtotime()将日期字符串转成Unix时间戳,再用date()一次格式化得到目标格式,不需要多次调用date()拼接:
// 示例 $data = "2021/05/20 11:46"; $timestamp = strtotime($data); $ID = (int)date('YmdHi', $timestamp);
方案2:使用DateTime类(更稳定)
直接指定输入的日期格式解析,避免strtotime()对特殊格式的解析歧义:
// 示例 $data = "2021/05/20 11:46"; $dateObj = DateTime::createFromFormat('Y/m/d H:i', $data); $ID = (int)$dateObj->format('YmdHi');
两种方案最终得到的$ID都是你需要的202105201146格式的整型数值,可直接作为bigint存入数据库。
内容的提问来源于stack exchange,提问作者Alvin Axel
相关产品推荐
相关产品推荐

