繁体   English   中英

将字符串转换为 javascript 中的 yyyy-dd-mm 日期 object

[英]convert string to yyyy-dd-mm date object in javascript

我从 HTML.fromdate='2020-07-30' 获取 fromdate 和 todate 字段。 我的数据库的字段标识为 2020-07-30。 现在我想比较他们两个。 所以我正在使用以下代码:

 var dashboard2= await Incident.find({type:'somestring',username:region,idate:{'>=':new Date(fromdate),'<=':new Date(todate)}})

如果我的开始日期是“2020-07-30”。 但它没有使用 idate: 2020-07-30 检索记录。 如果我的 fromdate 是“2020-07-29”,那么将检索带有 idate: 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”。 Output 我得到的是 2020-07-16T01:11:05.910Z。 我想从返回的 o/p 中去掉时区。 那可能吗?

您还应该更新您的 fromdate,因为从 date 传递固定日期不会将其更新为新日期。

任何与日期相关的格式都可以使用moment模块。

编辑:这会将字符串转换为日期的 object。

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, 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);

这将两个日期转换为相同的格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM