9873


Rails4.16でgemのjquery.countdownを使っています。  
カウントダウンの終了時刻が期待した動きになりません

例  
現在時刻 5月7日0時35分  
設定時刻(@item.limit_time)を5月7日16時に設定 → カウントダウンは0時0分0秒

現在時刻 5月7日0時35分  
設定時刻(@item.limit_time)を5月8日16時に設定 → カウントダウンは23時23分0秒

pry(main)でupdate時刻をコンソールで確認したところ、  
更新しているにもかかわらずupdated_at: "2015-05-06 15:35:50"（現在は2015-05-07 00:48:49
+0900）となっているのがおかしいとわかるのですが、  
active_admin上では 2015-05-07 00:48:49 +0900なのです。

> class Application < Rails::Application  
>  config.time_zone = 'Tokyo'  
>  config.active_record.default_timezone = :local
[code]

    #javascript
    
    $ ->
      $('.countdown').each ->
        $(this).countdown
          until: new Date($(this).data('until'))
          format: $(this).data('format')
        return
      return
    
    
    #view
    
    <div class="countdown" data-until= <%= @item.limit_time %> ></div>
    #limit_timeカラムはdatetimeです。
    
[/code]


CC BY-SA 3.0
2015-05-06T15:39:13.853
9865
2015-05-06T23:20:49.000
2015-05-06T22:38:09.413
85
9161
question
ruby-on-rails jquery
Rails4 jquery.countdownでカウントダウン終了時刻がずれる


詳細はよくわかりませんが、タイムゾーンがうまくかみ合っていないようですね。HTMLとして出力されているdata-untilの値は何になっていますか？

また、countdown.jsではuntilにtimezoneを渡すオプションもあるようなので、これを使ってタイムゾーンがかみ合うよう調整してみてはいかがでしょうか？

<http://keith-wood.name/countdownref.html#timezone>


CC BY-SA 3.0
2015-05-06T22:42:05.600
9872
2015-05-06T22:42:05.600
85
9865
answer


もしかしたら打ち間違いかもしれませんが、クォーテーションの付け忘れということは無いですか？TimeWithZone#to_s は、`2015-05-07
00:48:49 +0900` のように日付と時刻の間にスペースが入ってますので、以下のようにクォーテーションでくくらないと、時刻以下が`date-
until` として認識されないかと思います。

[code]

    <div class="countdown" data-until="<%= @item.limit_time %>" ></div>
    
[/code]

時刻が認識されていない（00:00:00と計算されている）と仮定すると、一応、カウントダウンの計算結果は合ってますね。


CC BY-SA 3.0
2015-05-06T22:43:23.630
9873
2015-05-06T23:20:49.000
2015-05-06T23:20:49.000
9508
9508
9865
answer