模板 自定义view文件夹 中间件 路由和路由函数 自定义多个route文件 session无效 自定义多个公共函数 中间件别名和数据库连接 伪静态 自定义类库extends 以年月日+编号拼接id,且编号每天从0开始 跨域 宝塔面板新建网站403 网页包含过多重定向 缓存 路由绑定子域名 方法参数错误 php导出excel时身份证变成科学技术法 获取路由参数 生成二维码phpqrcode 使用腾讯OCR(扫描) thinkphp6微信支付回调不访问 查询构造器 导入导出excel:安装使用 导入导出Excel:按日期导出 tp6腾讯云短信 thinkphp unserialize(): Error chinese-calendar 将base64保存到本地

以年月日+编号拼接id,且编号每天从0开始

首页 > PHP > Thinkphp6 更新日期:2021-06-04 07:24:45

开始搞

# 获取task_key
$task_key = Db::table('task_key')->select()->toArray();
# 获取task_key的更新时间
$key_up = $task_key[0]['updateTime'];
# 预设值
$key = '';
## 1、当日案件序号设置
# 要点:如果task_key的数据是昨天的,则更新为今天的。而如果是今天的,那直接读取即可
# 如果task_key的最后更新时间,小于今天0点
,那么,task_key的数据,为昨天数据
if($key_up < date('Y-m-d').' 00:00:00'){
      // 重置num的值为0,并+1(用于下一次获取),预设值$key的值也设为0
      // 重置updateTime的时间为当前时间
      $key = 0;
      Db::table('task_key')->where('Id', '=', 1)->update([
              'num'=>$key+1,
              'updateTime'=>getTime()
      ]);
}
# 如果task_key的最后更新时间,大于今天0点
else{
      // 获取num当前的值,储存在变量$key中
      // 创建新数据,要为num+1
      $key = $task_key[0]['num'];
      Db::table('task_key')->where('Id', '=', 1)->update([
             'num'=>$key+1,
             'updateTime'=>getTime()
      ]);
       
}
## 2、新建案件
$res_taskId = Db::table('task')->insertGetId([
       'xxxx'=>$xxxx
]);
## 3、将拼接的2021060400000格式的id,更新入新建的案件
Db::table('task')->where('Id', $res_taskId)->update([
       'taskId'=>getTime2().bu_4_0($key)
]);

函数一,获取当前时间

# 获取当前年月日-时分秒
function getTime(){
    $time = time();
    $date = date('Y-m-d H:i:s', $time);
    return $date;
}

函数二,获取无符号的年月日

# 获取当前年月入时分秒,无符号
function getTime2(){
    $time = time();
    $date = date('YmdHis', $time);
    return $date;
}

函数三,自带多个0的五位数编号

# 自动补4个0
function bu_4_0($num){
    # 当编号小于10,在编号前拼接4个0
    if($num < 10){
        return '0000'.$num;
    }
    # 当编号小于100……
    if($num < 100){
        return '000'.$num;
    }
    if($num < 1000){
        return '00'.$num;
    }
    if($num < 10000){
        return '0'.$num;
    }
    if($num < 100000){
        return $num;
    }
}


标题导航