如何解决在javascript中将字符串转换为yyyy-dd-mm日期对象
我正在从HTML获取fromdate和todate字段。 fromdate ='2020-07-30'。 我的数据库的字段ID为2020-07-30。现在,我想将两者进行比较。 所以我正在使用以下代码:
var dashboard2= await Incident.find({type:'somestring',username:region,idate:{'>=':new Date(fromdate),'<=':new Date(todate)}})
如果我的起始日期是“ 2020-07-30”。但其未检索到的记录为2020-07-30。如果我的起始日期仅是“ 2020-07-29”,那么将检索ID为2020-07-30的记录。
fromdate是字符串。 idate是一个日期对象。
我不知道我要去哪里。请纠正我吗?
根据建议,我更改了代码,如下所示:
function yyyyddmmFormatter(date) {
var dateDiv = date.split('-');
console.log(dateDiv);
var date = new Date();
date.setDate(dateDiv[2]);
date.setMonth(dateDiv[1]-1);
date.setFullYear(dateDiv[0]); // -- since it starts from 0
return date;
}
我从日期字符串中输入的是“ 2020-07-16”。我得到的输出是2020-07-16T01:11:05.910Z。我想摆脱返回的o / p的时区。有可能吗?
解决方法
您还应该更新fromdate,因为传递fromdate一个固定日期不会将其更新为新日期。
,与您可以使用moment
模块的日期有关的任何格式。
编辑: 这会将字符串转换为日期对象。
function yyyyddmmFormatter(date) {
var dateDiv = date.split('-');
var date = new Date();
date.setDate(dateDiv[0]);
date.setMonth(dateDiv[1]--); // -- since it starts from 0
date.setFullYear(dateDiv[2]);
return date;
};
function yyyyddmmFormatterWithTime(date) {
var dateDiv = date.split('-');
var date = new Date();
date.setHours(0,0); // to reset time
date.setDate(dateDiv[0]);
date.setMonth(dateDiv[1]--); // -- since it starts from 0
date.setFullYear(dateDiv[2]);
return date;
};
var date = yyyyddmmFormatter("2020-07-30");
var dateWithTime = yyyyddmmFormatterWithTime("2020-07-30");
,
我只是在存储和检索时使用了它。这帮助我解决了我的问题。只是简单的解决方案: 检索时:
var fdate=new date(fromdate);
在存储日期时:
var date1= new Date(pdate);
这会将两个日期转换为相同的格式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。