zoukankan      html  css  js  c++  java
  • php 生成唯一订单号5种方法

    第一种

    private function doCreateOrderNumber($time){
    
              $i=1;
    
              $dd = date('Ymd',$time);
    
              $aa = 'OH'.$dd;
    
              $res = $this->orderModel->query("select sn from sr_order_list where sn like '$aa%' order by id limit 1");
    
              if(!isset($res[0]['sn'])){
    
                    $i = 1;
    
              }else{
    
                    $i = (int)substr($res[0]['sn'],9,10) + 1;
    
              }
    
              while(true){
    
                    $nsn = 'OH'.$dd.$i;
    
                    $exist = $this->orderModel->query("select id from sr_order_list where sn = '$nsn' ");
    
                    if($exist){
    
                          $i++;
    
                    }else{
    
                          return $nsn;
    
                    }
    
              }
    
        }

    第二种

    $osn = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
    
    echo $osn; //2018070462577

    第三种

    $osn = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
    
    echo $osn; //2018070499495653

    第四种

    $order_id_main = date('YmdHis') . rand(10000000,99999999);
    
      $order_id_len = strlen($order_id_main);
    
      $order_id_sum = 0;
    
      for($i=0; $i<$order_id_len; $i++){
    
      $order_id_sum += (int)(substr($order_id_main,$i,1));
    
      }
    
      $osn = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);
    
    echo $osn; //201807041332258742313727

    第五种

    $code = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
    
    $osn = $code[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));
    
    echo $osn; //H704764673624352
  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/houss/p/12001282.html
Copyright © 2011-2022 走看看