2015-12-24 219 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

我已經使用了他的答案的第二部分代碼來解決問題。 –