如何从我的Collection中获取数据作为字符串?

时间:2015-12-23 17:40:42

标签: javascript object meteor collections countdown

我写了一个datepicker,用户可以使用bootstrap在输入字段中输入日期:

    <template name="date">
      <form>
         <div class="input-group datetimepicker">
           <input name="date" class="set-due-date form-control" type="text"/>
           <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
         </div>
          ...
     </form>
    </template>

在此之后,我将其插入到我的集合中,并附上表单的其他信息,并将用户路由到新页面。

    Template.date.events({
     'submit form':function(event,t){
      event.preventDefault();
      Questions.insert({
      closeDateDB: $('[name="date"]').val(),   
      ...
      ..
      },
    function (error,results){
      Router.go('decision', {_id:results})};
    });

我想知道我的倒数计时器的closeDateDB信息,并在结束时重定向用户&gt; currentTime的。

var timeinterval;

  Meteor.startup(function () {
    var endtime = *The closeDateDB of the submitted form!;*
    timeinterval = setInterval(function () {
      Meteor.call("getCurrentTime", function (error, result) {
        Session.set("time", result);
        var t = getTimeRemaining(endtime);
        Session.set("t", t);
      });
    }, 1000);
  });

  function getTimeRemaining(endtime){
    var t = Date.parse(endtime) - Session.get('time');
    var seconds = ("0" + Math.floor( (t/1000) % 60 )).slice(-2);
    var minutes = ("0" + Math.floor( (t/1000/60) % 60 )).slice(-2);
    var hours = ("0" + Math.floor( (t/(1000*60*60)) % 24 )).slice(-2);
    var days = Math.floor( t/(1000*60*60*24) );


    if(t <= 0) {
      clearInterval(timeinterval);
      Router.go('finalpage');
   }
    return {
      'total': t,
      'days': days,
      'hours': hours,
      'minutes': minutes,
      'seconds': seconds
    };

  }

  Template.countdown.helpers({
    t: function () {
      return Session.get("t");
    }
  });

  Template.body.helpers({
    ended:function () {
      console.log(Session.get("t").total <= 0);
      return Session.get("t").total <= 0;
    }
  });


Template.date.onRendered(function() {
    this.$('.datetimepicker').datetimepicker({
      locale: 'en',
      format: 'MM/DD/YYYY'
    });
});

有没有人可以帮助我如何将插入的closeDateDB作为我的倒计时字符串?我是Meteor的新手,我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 您需要确保以时间格式保存closeDateDB,以便直接将其与当前时间进行比较,即如果if ( closeDateDB > new Date() )是字符串,则closeDateDB将无效。
  2. 你正以非常复杂的方式做倒计时。使用remcoder:chronos包将自己的时间被动并节省大部分代码