如何将数据作为字符串从我的集合中获取

How to get data from my Collection as a string?

本文关键字:我的 集合 获取 字符串 数据      更新时间:2023-09-26

我写了一个日期选择器,用户可以使用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的信息,并在endtime>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. 您需要确保以时间格式保存closeDateDB,以便可以直接将其与当前时间进行比较,即如果closeDateDB是字符串,则if ( closeDateDB > new Date() )将不起作用
  2. 你倒计时的方式非常复杂。使用remcoder:chronos包使时间本身具有响应性,并节省大部分代码