一般做唯一编号
的时候,可以使用guid
或者uuid
的包直接生成,但是我希望唯一编号
能够反应生成的时间信息,所以就准备使用日期
+随机值
来构造,代码如下:
const tradeNo = function () {
const now = new Date()
const year = now.getFullYear();
let month = now.getMonth() + 1;
let day = now.getDate();
let hour = now.getHours();
let minutes = now.getMinutes();
let seconds = now.getSeconds();
String(month).length < 2 ? (month = Number("0" + month)) : month;
String(day).length < 2 ? (day = Number("0" + day)) : day;
String(hour).length < 2 ? (hour = Number("0" + hour)) : hour;
String(minutes).length < 2 ? (minutes = Number("0" + minutes)) : minutes;
String(seconds).length < 2 ? (seconds = Number("0" + seconds)) : seconds;
const yyyyMMddHHmmss = `${year}${month}${day}${hour}${minutes}${seconds}`;
return yyyyMMddHHmmss + '_' + Math.random().toString(36).substr(2, 9);
};
// 使用
tradeNo();
生成的唯一订单号举例如下:原则上是不会重复的。
2019522203532_2lubccbkd
2019522203540_a297n7f9g
2019522203549_hr013qzes