2015-12-24 181 views
1

我们正在处理保存在数据库(格式:mm:ss)中的持续时间的毫秒转换。我们可以通过命令#bignews.Control_CountdownDuration#访问持续时间值。分钟,秒转换为毫秒

<div class="slideBox" data-duration="#bignews.Control_CountdownDuration#"> 

当前值(mm:ss)不足以正确处理数据持续时间。 任何人都可以指导我完成任务吗?

回答

2

createTimeSpan()dateDiff()的组合将完成这项工作。这里
输入进入变量minutesseconds

<cfset cmpBase    = createTimeSpan(0, 0, 0, 0)> 
<cfset cmpValue    = createTimeSpan(0, 0, minutes, seconds)> 
<cfset diffInSeconds  = dateDiff("s", cmpBase, cmpValue)> 
<cfset diffInMilliseconds = (diffInSeconds * 1000)> 

假设你的源值存储为像mm:ss字符串,这将是:

<cfset minutes = getToken(bignews.Control_CountdownDuration, 1, ":")> 
<cfset seconds = getToken(bignews.Control_CountdownDuration, 2, ":")> 
<cfset cmpValue = createTimeSpan(0, 0, minutes, seconds)> 

<cfset cmpBase    = createTimeSpan(0, 0, 0, 0)> 
<cfset diffInSeconds  = dateDiff("s", cmpBase, cmpValue)> 
<cfset diffInMilliseconds = (diffInSeconds * 1000)> 

    <div class="slideBox" data-duration="#diffInMilliseconds#"> 

(验证冷落了可读性。)

附注:您应该使用总秒数(请参阅变量diffInSeconds),因为无论如何你都没有精确的毫秒数。

+0

谢谢亚历克斯...问题解决了。完美的结果。 –

+4

看起来比必要更复杂。对我来说,问题就像将字符串分成几分钟和几秒一样简单,将分钟乘以60,增加秒数,再乘以1000. –

+0

我已经使用了他的答案的第二部分代码来解决问题。 –