【发布时间】: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