node.js - 使用 Moment.js 将字符串转换为日期,返回无效日期
问题描述
我正在尝试将日期数据添加到我的节点服务器中的 Mongoose 中,这来自一个将日期作为字符串发送的表单。我有以下代码:
let ticket_data = req.body.ticket;
console.log(ticket_data);
ticket_data.due_date = moment(ticket_data.due_date, "MM-DD-YYYY").toDate();
console.log(ticket_data.due_date);
console.logs 正在返回:
{ ticket_name: 'Ticket Name',
assigned_user: '5ec2b8b38b2508027f2f0c90',
due_date: '21. 5. 2020',
description: 'This is a test ticket' }
Invalid Date
我不确定为什么我要返回一个无效的日期,格式似乎是正确的。这里有我遗漏的细节吗?谢谢!
解决方案
尝试在内部指定格式moment()
,即您收到的格式,以便那一刻将其解析为有效日期。
let data = "21. 5. 2020";
let res = moment(data, "DD. M. YYYY"); // this will be valid moment date now
console.log(res.format("DD-MM-YYYY"));
<script src="https://momentjs.com/downloads/moment.js"></script>
推荐阅读
- debugging - rust-lldb 不显示第三方库的来源
- ios - SwiftUI:如何将圆形 img 裁剪器与 UIImagepicker 一起使用
- c++ - 难以理解运行时错误 this->is_initialized() 在 boost::optional 中失败
- javascript - 循环promise中的每个项目并过滤结果
- sql - 添加第二个 JOIN 时,第一个 JOIN 数量的结果看起来非常不同(很难结合两个 JOIN)
- ruby-on-rails - 如何查看带有 ruby on rails 活动记录的数据库?
- powershell - 在 powershell 字段中解析日期字符串
- javascript - 如何优化递归 JavaScript
- spring-boot - Elasticsearch RestHighLevelClient 使用 AWS Elasticsearch 的前几个查询速度很慢
- quartz - Quartz 手动作业开始不更新 previousFireTime