在rails中制作日期倒计时器

时间:2017-02-08 01:50:23

标签: javascript html ruby-on-rails datetime timer

你好,我非常接近制作这个日期时间计数器。我假设因为我在我的代码中使用date new Date我没有让代码工作?我想假设使用date datetime time?当我做一个'puts"#{reservation.due_date}"我得到了正确的duedate所以我很困惑为什么计数器不工作。



 

<div id="dueDate-counter">
   <table>
    	<tr>
    		<td>days</td>
    		<td>hrs</td>
    		<td>mns</td>
    		<td>secs</td>
    	</tr>
    	<tr>
    		<td id="days"></td>
    		<td id="hours"></td>
    		<td id="minutes"></td>
    		<td id="seconds"></td>
    	</tr>
    								
    </table> 

    	<script type="text/javascript">
    		function countdown() {
    			var now = new Date();
    			var eventDate = new Date(<%= reservation.due_date %>);
    			<%= puts "here is reservation !!!!!!!" %>;
    			<%= puts "#{reservation.due_date}" %>;
    			var currentTime = now.getTime();
    			var eventTime = eventDate.getTime();

    			var remTime = eventTime - currentTime;

    			var s = Math.floor(remTime / 1000);
    			var m = Math.floor(s / 60);
    			var h = Math.floor(m / 60);
    			var d = Math.floor(h / 24);

    			h %= 24;
    			m %= 60;
    			s %= 60;

    			h = (h < 10) ? "0" + h : h;
    			m = (m < 10) ? "0" + m : m;
    			s = (s < 10) ? "0" + s : s;

    			document.getElementById("days").textContent = d;
    			document.getElementById("days").innerText = d;

    			document.getElementById("hours").textContent = h;
    			document.getElementById("minutes").textContent = m;
    			document.getElementById("seconds").textContent = s;

    				setTimeout(countdown, 1000);
    								}

    								countdown();

    							</script>
    							
    						</div>
&#13;
&#13;
&#13;

在查看页面时,我会在days hours etc中显示空白数据。在script的开头附近我添加了eventDate我将due_date作为新日期。现在记住它是一个DateTime格式,因此它在数据库中有小时分钟秒。所以这不是阅读,因为我做了它new Date有一个datetime ??谢谢!!

reservation.due_date显示在db中,例如:2017-02-09 00:02:00

1 个答案:

答案 0 :(得分:1)

您只需要使用引用

包装截止日期的输出
var eventDate = new Date("<%= reservation.due_date %>");

如果不这样做,您将在控制台浏览器上出现此错误

Uncaught SyntaxError: missing ) after argument list