平时我们在网上平台购物,每一订单各种单号都有,例如:物流单号,业务单号,等等,
如果在淘宝下单时使用了花呗支付,还要有个花呗单。
这些单号,生成都是有一定规则的,至于规则那是人家公司定的与我们无关,但是这些单号都是唯一的。
目前我在项目实训中,也有生成类似单号的情况;
我是通过获取当前时间的{yyyy}{MM}{DD}{HH}{mm}{ss}年月日时分秒拼接某格式实现的
至于获取的方法和属性就不说了,前面有,CSDN的博客上一搜也有大堆;
注意下面的方法是存在问题的。
//获取日期时间拼接成特定格式
function SetDateNumder() {
var date = new Date();
var strmonth = date.getMonth() + 1;//获取月份
var strDate = date.getDate();//获取日期
var strMinute = date.getMinutes();//获取分
var strSeconde = date.getSeconds();//获取秒
if (strmonth >= 1 && strmonth <= 9) {
strmonth = “0” + strmonth;
}
if (strDate >= 1 && strDate <= 9) {
strDate = “0” + strDate;
}
if (strMinute >= 1 && strMinute <= 9) {
strMinute = “0” + strMinute;
}
if (strSeconde >= 1 && strSeconde <= 9) {
strSeconde = “0” + strSeconde;
}
//拼接成{yyyy}{MM}{dd}{HH}{mm}{ss}格式
var NewDate = date.getFullYear() + strmonth + strDate + date.getHours() +
strMinute + strSeconde;
//返回拼接的字符串
return NewDate;
};
//页面载入事件(赋值文本框显示在页面) $(function () { console.log(SetDateNumder()); //销售单编号 var DateNumber = "XSD" + SetDateNumder(); //赋值 document.getElementById("txbBusiNo").value = DateNumber; }); //页面载入事件(赋值文本框显示在页面) $(function () { console.log(SetDateNumder()); //销售单编号 var DateNumber = "XSD" + SetDateNumder(); //赋值 document.getElementById("txbBusiNo").value = DateNumber; });
两个页面载入事件,是属于不同页面的,只是页面代码体基本相同。
但是这种方法生成的单号,是存在问题的,什么问题呢,为区别不同类型的单号,是我在方法或者在页面载入事件中就给他赋值(定义)了,例如:上面的“XDD”和“XSD”。
那这就是程序员在内部中给其定义的规则,无法进行规则的更改,如要更改则需要程序员在内部进行更改,但是,如果不同商家用的规则不同,则无法对其进行更改了,
也就是说这个方法生成的是该程序内部自定义的单号生成规则,而且必须要在对应的页面进行方法的引用的,该页面的单号规则进行设置。
也就是说该方法无法与数据库进行对接,如果是商家使用的话,商家也无法按照自己的规则生成单号。
必须使用程序内部编号,同样你的数据储存的规则也与其无关,因为无法对接。
还有一个很好解决的问题,也就是这方法生成的单号是可在页面修改的,
前:
后:
是全部可改。
那请问要怎样才能使其无法进行修改,那是不是在您存放或单号赋值的元素,把其属性改成只读,让他只能读无法写就可以了呢。不知道,要试验。
加油…