【问题标题】:Javascript increment number..missing logicJavascript增量编号..缺少逻辑
【发布时间】:2011-02-27 01:58:33
【问题描述】:

这里需要一些逻辑或算法:

我想使用 javascript 来实现一个简单的计数器,它每天添加 rand() int(忽略页面加载)并在不使用任何数据库的情况下存储该数字......它没有从 0 开始,但是它必须每天增加。示例:2050。第二天:2053..等等。

我正在考虑使用 javascript 日期函数,因为年份在增加,月份数字在增加(每年),但是每个月的天数设置为 1.. 那么有什么想法可以使用哪种算法或javascript函数来实现呢?

最好有 rand() 函数,它只会增加,但每天都会增加,而不是每次页面加载.. 可能这是个愚蠢的问题,但现在是星期六,我的大脑不再工作了.. :) 非常感谢!

更新:getTime() 有点像,但它给了我 8176870165464 之类的东西,最后一个数字是毫秒,所以它们变化太频繁了..我需要增加 +1 或 +3(或相对较小的整数)每天..最后的计数器是 4 位数,比如 2040,而不是 345346345355

【问题讨论】:

    标签: javascript algorithm


    【解决方案1】:

    您可以使用当前日期。 要使其增加,只需计算自过去某一天以来的天数。

    【讨论】:

    • 哈,这就是我需要的!完全忘记了自给定日期以来的计算天数。星期六对我有用。谢谢!
    • 不客气。随意将答案设置为“已接受”;)
    • 我会的,等待有人想出一个天才算法:) 你的解决方案很简单而且有效,prob 会使用它:)
    【解决方案2】:

    如果您只需要每 24 小时增加一次的数字,请使用当前时间。 javascript 的Date.getTime() 返回自 1970 年以来的毫秒数。这将一直上升,如果您只想每 24 小时更改一次,只需将其返回的数字除以 24*60*60*1000。 (请注意,在闰秒和夏令时的情况下,一天可以多于或少于 24 小时。)

    【讨论】:

    • 复制相同的评论:它给了我 8176870 之类的东西,最后一位数字是毫秒,所以它们变化太频繁了..我需要增加 +1 或 +3(或相对较小的 int)每个天..对不起,如果我最初没有指定..
    • 如果你将该数字除以 24*60*60*1000,它每天只会改变一次。
    • 给我 15032.117803275463
    【解决方案3】:

    号码必须是全球唯一的吗?每个用户唯一?它可以为用户重复吗?

    无论哪种方式,您都必须将其存储在 cookie 中,或者将其存储在服务器上的某个位置。如果它在您的服务器上,那么让 Javascript 生成它是没有意义的,只需使用您选择的服务器端语言即可。

    【讨论】:

    • 它可以重复,所有用户每天都会看到相同的数字
    • 您应该将这些问题作为评论发布。
    • 那么你肯定不想要 Javascript - 那是纯粹的客户端。您会让访问您网站的每个人都尝试生成一个数字并让您的服务器记住它 - 只需在服务器上生成该数字并将其与您的页面一起提供即可。
    【解决方案4】:

    它需要是随机的吗?还是只是增加?以下内容每天增加 1:

    date = Math.floor(Date().getTime() / (24*60*60*1000));
    

    编辑: 用 div 替换了上面的 mod(或者至少,一个 hack 来获取 div,因为 JS 不支持 div)

    如果它需要是随机的(在不可预测的意义上)你需要做这样的事情:

    nr = nr * 100 + yourrandomfunction(nr,100)
    

    如果你的随机函数返回一个给定种子'nr'和最大值'100'的随机数。但不幸的是,您需要自己构建它:

    Seeding the random number generator in Javascript

    【讨论】:

    • 我喜欢它,但它给了我 8176870 之类的感觉,最后一个数字是毫秒,所以它们变化太频繁了..我需要增加 +1 或 +3(或相对较小的 int)每个天..对不起,如果我最初没有指定..
    • 嘿,愚蠢的错误,我使用了模数,而不是整数除法,我会修复它。
    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多