|
/**
* 生成订单流水号
*
* @author xiaohu
* @return string
*/
function _gen_order_sn()
{
/* 选择一个随机的方案 */
mt_srand((double) microtime() * 1000000);
$timestamp = gmtime();
$y = date('y', $timestamp);
$z = date('z', $timestamp);
$order_sn = $y . str_pad($z, 3, '0', STR_PAD_LEFT) . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
/* 到数据库里查找是否已存在 */
$model_order =& m('order');
$orders = $model_order->find('order_sn=' . $order_sn);
if (empty($orders))
{
/* 否则就使用这个订单号 */
return $order_sn;
}
/* 如果有重复的,则重新生成 */
return _gen_returns_sn();
}
/**
* 获得当前格林威治时间的时间戳
*
* @return integer
*/
function gmtime()
{
return (time() - date('Z'));
}
echo _gen_order_sn(); |
|
|