Datetime 将随机时间添加到日期时间值
我想给约会增加1-30分钟的随机时间,但ColdFusion似乎不喜欢这样。无论我运行以下代码多少次,它都会向Datetime 将随机时间添加到日期时间值,datetime,coldfusion,coldfusion-10,coldfusion-11,coldfusion-2016,Datetime,Coldfusion,Coldfusion 10,Coldfusion 11,Coldfusion 2016,我想给约会增加1-30分钟的随机时间,但ColdFusion似乎不喜欢这样。无论我运行以下代码多少次,它都会向Now()值添加相同的分钟数。我不明白为什么 <cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/> <cfoutput>#DateFuture#</cfoutput> #日期未来# 我需要yyyy
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 Server中的datetime值的样子,我计划在其中插入我未来的日期
如果我运行上述代码,我将继续获得以下输出:
2017-11-25 22:11:24
然后突然变成2017-11-25 21:11:16,这占用了整整一个小时,而我只想增加时间
它为什么这样做毫无意义。我在英国,但使用国际日期格式作为SQL Server的默认格式,如上所述
更新:这是一个打字错误!日期时间格式应为
yyyy-mm-dd HH:nn:ss.l
”nn是分钟,不是mm。哦 如果使用分钟数,1到30的范围不会给你很多值
使用秒数
[600到1800]或毫秒数
[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#" />
运行代码:
整个问题归结为打字错误。它应该是
HH:nn:ss
。注意nn
而不是mm
持续几分钟 我很想使用SQL Server的日期和时间。SQL 2016有一组更加健壮的函数。有一些UDF可以让SQL 2014做各种各样的事情。也许但是ColdFusion的函数应该像宣传的那样工作?这是一个愚蠢的错误。我使用HH:MM:SS应该是HH:NN:SSI知道这不是一个博客,但是当你认为SQL Server具有所有这些日期函数:很多都没有ColdFusion的等价物。再重复一次,打字错误也会把事情搞得一团糟。更好的是,把它标记为一个副本。小时与月是一个常见的日期掩码错误。整个问题归结为打字错误。应该是HH:nn:ss。注意“nn”而不是“mm”持续几分钟。