Javascript moment.isoWeekday不是函数
我使用的是Javascript moment.isoWeekday不是函数,javascript,node.js,momentjs,httpserver,Javascript,Node.js,Momentjs,Httpserver,我使用的是codesandbox,同样的错误不断出现:u:502:bad gateway。从终端上看,这显然是因为moment.isoWeekday不是一个函数。为什么会这样 我已经看过了moment.js,我把它放在代码中的方式显然是正确的 var http = require("http"); var moment = require("moment"); moment().format(); function getDates() { var start = moment.utc("
codesandbox
,同样的错误不断出现:u:502:bad gateway
。从终端上看,这显然是因为moment.isoWeekday
不是一个函数。为什么会这样
我已经看过了moment.js
,我把它放在代码中的方式显然是正确的
var http = require("http");
var moment = require("moment");
moment().format();
function getDates() {
var start = moment.utc("1st Jan 2019");
var end = moment.utc("31st December 2019");
var dates = [];
var current = start.clone();
if (current !== moment.isoWeekday(1)) {
current = moment().add(1, "w");
}
while (current.isBefore(end)) {
current.clone.push(dates);
current = moment.add(2, "w");
}
return dates;
}
http
.createServer(function(req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.write("day,date", "\n");
var dates = getDates();
for (var i = 0; i < dates.length; i++) {
res.write(moment.format("dddd, Do MMMM YYYY", dates[i]), "\n");
}
res.end();
})
.listen(8080);
var http=require(“http”);
var力矩=要求(“力矩”);
矩().format();
函数getDates(){
var开始=utc时刻(“2019年1月1日”);
var end=utc时刻(“2019年12月31日”);
var日期=[];
var current=start.clone();
if(当前!==时刻等工作日(1)){
电流=力矩()。加上(1,“w”);
}
while(当前.isBefore(结束)){
当前.克隆.推送(日期);
电流=力矩。加上(2,“w”);
}
返回日期;
}
http
.createServer(功能(请求、恢复){
res.writeHead(200,{“内容类型”:“文本/普通”});
res.write(“日期”、“日期”);
var dates=getDates();
对于(变量i=0;i
我正在做一项需要输出日期的任务。
isoWeekday
是代码的一部分,它应该检查当天是否不是Monday
,然后在变量上添加一周,以便在下一周设置为Monday
。您的代码中有几个错误:
时刻中忘记了()
之后的时刻。等工作日(1)
矩.utc(“2019年1月1日”)
的输出为空,因为矩无法识别格式,矩.utc(“2019年1月1日”、“2019年1月1日”、“Do MMM YYYY”)
应按预期工作current
的克隆推送到数组dates
上,必须执行dates.push(current.clone())
而不是current.clone.push(日期)代码>
moment.format(“dddd,Do MMMM YYYY”,dates[i])
不正确,您必须改为执行dates[i]。format(“dddd,Do MMMM YYYY”)
您必须在这样的时刻之后添加()
:时刻().isoWeekday(1)
Ohhh ok!非常感谢,我没注意到。我现在已经改变了这一点,我的预期结果仍然没有出现。你知道还有什么不对劲吗?感谢您的帮助。您能解释一下您在if
和while
中想做什么吗?对于if语句:第一个输出值应该在2018年,这是不正确的。因此,我将“current”作为下一个Monday
,一个条件语句。while循环用于检查当前
是否在结束
之前。然后在循环内部,我想将当前
的克隆推送到数组日期
谢谢,这已经消除了我的一些困惑。然而,预期的结果仍然没有输出(我正在使用codesandbox
,不确定这是否会以任何方式影响它)。这可能是因为(var i=0;i?我提供的示例是否为您输出了预期结果?不,没有。如果您有兴趣查看,请链接此处:仅输出标题codesandbox中的代码与我发布的代码不同,您使用了moment().utc
,但正确的是moment.utc
,您应该使用current.add(2,“w”)
而不是moment().add(2,“w”)代码>,工作演示:哦,我明白了。现在正在输出日期,非常感谢。我把新行命令做错了吗?我认为为每个输出在新行上生成输出将是res.write(dates[I].format(“dddd,Do MMMM-YYYY),“\n”);
?而且我还认为我创建的if
语句将在周一开始,并带有moment()。isoWeekday(1)
?