如何使用javascript根据当前时间创建一串数字



我曾经使用代码为我的文件名创建一串数字以避免重复。它的作用是它会向我发送一串非常准确的确切当前时间的数字(如 1/1000000000 秒)。我不记得我是怎么做到的了,因为我只保留了复制和粘贴我的旧代码。有谁知道该怎么做?

MDN有一个关于Javascript Date构造函数/对象的很好的参考。但基本上,在较旧的环境中,确实如此。

new Date().getTime()

在较新的环境中,您可以执行

Date.now()

两者都返回一个Integer value representing the number of milliseconds since 1 January 1970 00:00:00 UTC (Unix Epoch).

你也可以做

new Date().valueOf()

但它可能不如上述可靠。

javascript 中的当前时间仅提供为毫秒数。 如果一次生成多个文件名,则在同一操作期间多次请求时,可能会获得相同的当前时间。 因此,如果您想要一个完全唯一的数字(具有比当前毫秒更多的唯一性,因此您可以在紧密循环中生成这些数字),您可以将时间与随机生成的值组合在一起,如下所示:

function makeUnique(base) {
    var now = new Date().getTime();
    var random = Math.floor(Math.random() * 100000);
    return base + now + random;
}
makeUnique("test");

工作演示:http://jsfiddle.net/jfriend00/dpZLC/

如果您希望文件名始终是相同的位数,则可以像这样将随机数归零:

function makeUnique(base) {
    var now = new Date().getTime();
    var random = Math.floor(Math.random() * 100000);
    // zero pad random
    random = "" + random;
    while (random.length < 5) {
        random = "0" + random;
    }
    return base + now + random;
}

可以使用 Date 对象的 getTime 方法创建检索自纪元以来经过的毫秒数。

var now = new Date();console.log(now.getTime());

最新更新