【问题标题】:Validatig date input- timestamp microservice验证日期输入 - 时间戳微服务
【发布时间】:2018-11-17 15:19:49
【问题描述】:

我在尝试验证我的日期输入时遇到问题。我使用moment js尝试了这个,但似乎有问题。我总是让日期无效!

这是我的代码:

app.get("/api/timestamp/:date_string", function (req,res,next){

var date_string = req.params.date_string;

var date = moment(date_string, 'DD-MM-YYYY', true);
if (date.isValid())
{ req.time = new Date(date_string).toUTCString();
req.unix = new Date(date_string).getTime();
}

else if (!date.isValid()){

req.time= "invalid date";
req.unix= "error";
}

else {
req.time = new Date().toUTCString();
req.unix = new Date().getTime();
}


next();

}, function (req,res) {

res.json ({
        unix: req.unix,
        utc: req.time 
         })

})

不知道哪里不方便?

【问题讨论】:

  • 我建议您尝试隔离问题:失败的日期输入是什么?你能创建一个显示问题的 3-4 行 minimal reproducible example 吗?
  • 我正在从:app.get("/api/timestamp/:date_string") 获取输入,然后尝试使用:var date = moment(date_string, 'DD -MM-YYYY',真);但 date.isValid 似乎总是假的!

标签: javascript node.js express momentjs


【解决方案1】:

以下是可能需要的人的正确代码:

app.get("/api/timestamp/:date_string", function (req,res,next){

var date_string = req.params.date_string;

var date = Date.parse(date_string)
if (isNaN(date)==false)
{ req.time = new Date(date_string).toUTCString();
req.unix = new Date(date_string).getTime();
}

else if (isNaN(date)==true){

req.time= "invalid date";
req.unix= "null";
}

else {
req.time = new Date().toUTCString();
req.unix = new Date().getTime();
}


next();

}, function (req,res) {

res.json ({unix: req.unix,
        utc: req.time })

})

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多