将随机时间添加到 DateTime 值
Adding random time to DateTime value
我想在日期中添加 1-30 分钟之间的随机时间,但 ColdFusion 似乎不喜欢它。无论我 运行 以下代码多少次,它都会将相同的分钟数添加到 Now()
值。我不明白为什么。
<cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/>
<cfoutput>#DateFuture#</cfoutput>
我需要 yyyy-mm-dd HH:mm:ss.l
DateTimeFormat,因为这是我在 SQL 服务器中的日期时间值的样子,这就是我计划插入未来日期的地方。
如果我 运行 上面的代码我一直得到这个输出:
2017-11-25 22:11:24
and then suddenly it will change to 2017-11-25 21:11:16 which is taking away a whole hour when I only want to add to the time!
它为什么这样表现是没有道理的。我在英国,但我使用 SQL 服务器默认格式的国际日期格式,如上所示。
更新:这是一个打字错误! DateTimeFormat 应为 yyyy-mm-dd HH:nn:ss.l
。 'nn' 是分钟,而不是 'mm'。哦!
如果您使用分钟,1 到 30 的范围不会给您很多值。
您可以使用 seconds
[600 到 1800] 或 miliseconds
[600000 到 1800000] 使其更加随机。
<cfset miliSeconds = RandRange(600000, 1800000) />
<cfdump var="#miliSeconds#" />
<cfset DateFuture = DateTimeFormat( DateAdd('l', miliSeconds, now()), 'yyyy-mm-dd HH:nn:ss.l')/>
<cfdump var="#DateFuture#" />
运行代码:
https://trycf.com/gist/f26ff8edbe1736e453ded06d5adf5076/lucee5?theme=monokai
整个问题归结为打字错误。应该是HH:nn:ss
。请注意 nn
而不是 mm
分钟。
我想在日期中添加 1-30 分钟之间的随机时间,但 ColdFusion 似乎不喜欢它。无论我 运行 以下代码多少次,它都会将相同的分钟数添加到 Now()
值。我不明白为什么。
<cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/>
<cfoutput>#DateFuture#</cfoutput>
我需要 yyyy-mm-dd HH:mm:ss.l
DateTimeFormat,因为这是我在 SQL 服务器中的日期时间值的样子,这就是我计划插入未来日期的地方。
如果我 运行 上面的代码我一直得到这个输出:
2017-11-25 22:11:24 and then suddenly it will change to 2017-11-25 21:11:16 which is taking away a whole hour when I only want to add to the time!
它为什么这样表现是没有道理的。我在英国,但我使用 SQL 服务器默认格式的国际日期格式,如上所示。
更新:这是一个打字错误! DateTimeFormat 应为 yyyy-mm-dd HH:nn:ss.l
。 'nn' 是分钟,而不是 'mm'。哦!
如果您使用分钟,1 到 30 的范围不会给您很多值。
您可以使用 seconds
[600 到 1800] 或 miliseconds
[600000 到 1800000] 使其更加随机。
<cfset miliSeconds = RandRange(600000, 1800000) />
<cfdump var="#miliSeconds#" />
<cfset DateFuture = DateTimeFormat( DateAdd('l', miliSeconds, now()), 'yyyy-mm-dd HH:nn:ss.l')/>
<cfdump var="#DateFuture#" />
运行代码: https://trycf.com/gist/f26ff8edbe1736e453ded06d5adf5076/lucee5?theme=monokai
整个问题归结为打字错误。应该是HH:nn:ss
。请注意 nn
而不是 mm
分钟。