【问题标题】:Is there a way to test a future event? Node.js有没有办法测试未来的事件?节点.js
【发布时间】:2021-03-22 17:10:48
【问题描述】:

我想测试未来的事件。

理论上,这段代码应该可以工作。我的问题是,当我将日期设置为2020-12-25 时,它显示时间戳超出范围。是代码有问题还是使用了某些时区系统?我还禁用了自动时区。所以请告诉我如何测试这个。在我看来,它正在工作,因为它正在执行第一个条件,即if (d < d1) { ... }。我唯一不明白的是它是否会切换条件。

var config = require("./config.js");
var Twit = require('twit');
var TT = new Twit(config);

var d = new Date();
var d1 = new Date('2020-12-25');
var d2 = new Date('2020-12-26');
var d3 = new Date('2020-12-27');

console.log(d, d.getDate()); // output: 2020-12-11T08:55:45.619Z, 11
console.log(d1, d1.getDate()); // output:2020-12-25T00:00:00.000Z, 25
console.log(d2, d2.getDate()); // output:2020-12-26T00:00:00.000Z, 26
console.log(d3, d3.getDate()); // output:2020-12-27T00:00:00.000Z, 27

if (d < d1) { 
  var calc = d1.getDate() - d.getDate();
    var tweet = calc + " days left until Christmas! Ho Ho Ho!❄⛄????"
     }
 else if(d >= d1 && d < d2) { 
     var tweet = "Today is Christmas! Ho Ho Ho!❄⛄???? "
  }
    else if(d >= d2 && d < d3) {
        var tweet = "Today is also Christmas! Ho Ho Ho! ❄⛄????"
    }
     //else { console.log(tweet);}

tweetIt();
setInterval(tweetIt, 86400000)

function tweetIt(){

TT.post('statuses/update', {status: tweet}, tweeted);

function tweeted(err, data, response) {
    if (err) {
      console.log(err);
    } else {
      console.log('Success: ' + data.text);
      //console.log(response);
    }
  };
  
}


tweetIt();
setInterval(tweetIt, 86400000)

function tweetIt(){

TT.post('statuses/update', {status: tweet}, tweeted);

function tweeted(err, data, response) {
    if (err) {
      console.log(err);
    } else {
      console.log('Success: ' + data.text);
      //console.log(response);
    }
  };
  
}


【问题讨论】:

  • 我们通常使用cron作业而不是setInterval
  • @Ifaruki 谢谢,但我这意味着我必须重做我的代码!对于setInterval,我也是这样做的,因为这对我来说似乎是最简单的,但还是谢谢你!

标签: javascript node.js twitter


【解决方案1】:

希望这会有所帮助: 如果你碰巧在使用 JS,比如创建另一个应用程序的 Node.js 版本,请记住 php Time() 不等于 js Date.now() 对于这种情况下的时间戳,您需要使用 Math.floor(Date.now() / 1000)。

这也可能很愚蠢,但请检查时间格式: 2020-12-25(确保它的 y-m-d)可能设置为 (y-d-m) 或其他值。

【讨论】:

  • 感谢您的贡献,@AmanShankar!你的代码并不完全适合我,但它让我大致了解了我应该做什么。我通过设置一个确切的日期来做到这一点,从那里一切正常,非常感谢!
猜你喜欢
  • 2020-02-15
  • 2022-07-05
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
相关资源
最近更新 更多