获取特定格式日期的唯一ID?

时间:2013-06-13 15:09:39

标签: javascript asp.net

我的代码会生成一个随机的唯一ID ..但有一种方法我可以编辑这段代码,以便它以特定的方式抓取日期,如yyyy-mm-dd-0001。最后4位数我希望每次点击generateid按钮时加1。所以它将改为0002.这是我现有的代码。是否有可以自动获取日期的功能?

  var counter = 0000;
    function Counter() {
if((document.getElementById("generateid").clicked == true)
{
Counter++
return counter;
}
    }




    function Month() {
        var m = new Date();
        var mm = m.getMonth() + 1;
        if (mm < 10) {
            mm = '0' + mm;
            return mm;
        } 


    }
    function Year() {
        var y = new Date();
        var yy = y.getFullYear();
        return yy;
    }
    function Day() {
        var d = new Date();
        var dd = d.getDate();
        return dd;
    }
//generate id
    function guidGenerator() {
        var theID = (Year() + "-" + Month() + "-" + Day() + "-" + Counter);
        return theID;
    }

    function generateID() {

        var TheTextBox = document.getElementById("generateidtxt");
        TheTextBox.value = TheTextBox.value + guidGenerator();
        document.getElementById("generateid").disabled = true;

    }

2 个答案:

答案 0 :(得分:0)

您可以使用以下对象:

var idGenerator  = {
    seq: 0,
    generateId: function () {
       this.seq++;
       return (new Date()).toISOString().substring(0, 10) + '-' + ('000' + this.seq).substr(-4)
    }
}

在这样的声明后,尝试

function generateID() {
   var TheTextBox = document.getElementById("generateidtxt");
   TheTextBox.value = TheTextBox.value + idGenerator.generateId();
   document.getElementById("generateid").disabled=true;    
}

答案 1 :(得分:0)

如果您想要一种方法来跟踪所有网站访问者仅使用javascript生成ID的次数,那么如果不追上某些后端来跟踪,就不可能实现这一点。但是,以下代码将按照您的访问者的要求执行。

jsfiddle

var ttlIds = 0;

function guidGenerator() {
    var S4 = function () {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    }
    return (S4() + S4() + S4());

}

function generateID() {

    var TheTextBox = document.getElementById("generateidtxt");
    TheTextBox.value = TheTextBox.value + guidGenerator().toString().toUpperCase();
    //document.getElementById("generateid").disabled=true; 

    ttlIds++;
    if(ttlIds < 10){
        ttlIds_formatted = '000'+ttlIds;
    }else if(ttlIds < 100){
        ttlIds_formatted = '00'+ttlIds;
    }else if(ttlIds < 1000){
        ttlIds_formatted = '0'+ttlIds;    
    }
    d = new Date();
    var funkydate = d.getFullYear() +'-' + (d.getMonth()+1) + '-' + d.getDate() + '-' + ttlIds_formatted;
    document.getElementById("funkydate").value = funkydate;

}