Javascript 如何将dd-mm-yyyy等日期转换为ISO日期格式,以存储在mongoDB中

Javascript 如何将dd-mm-yyyy等日期转换为ISO日期格式,以存储在mongoDB中,javascript,angularjs,mongodb,datetime,mean,Javascript,Angularjs,Mongodb,Datetime,Mean,在我的mean stack应用程序中,我有基于日期的数据。在angular方面,我使用了一个日期选择器来获取/设置要处理的数据读/写的日期。日期选择器生成格式为“dd-mm-yyyy”的日期。将其转换为mongodb可理解格式的最简单方法是什么 var str = "29-1-2016"; darr = str.split("-"); // ["29", "1", "2016"] var dobj = new Date(parseInt(darr[2]),parseInt(darr[1])

在我的mean stack应用程序中,我有基于日期的数据。在angular方面,我使用了一个日期选择器来获取/设置要处理的数据读/写的日期。日期选择器生成格式为“dd-mm-yyyy”的日期。将其转换为mongodb可理解格式的最简单方法是什么

var str = "29-1-2016";
darr = str.split("-");    // ["29", "1", "2016"]
var dobj = new Date(parseInt(darr[2]),parseInt(darr[1])-1,parseInt(darr[0]));
                         // Date {Fri Jan 29 2016 00:00:00 GMT+0530(utopia standard time)
console.log(dobj.toISOString());
                         //2016-01-28T18:30:00.000Z
这样就可以了,但是有没有更简单的方法呢

  • 另外,请说明为什么在isodate格式中我得到2016-01-28,而不是2016-01-29T
您可以使用此解决方案(在我的案例中有效)-

首先,在代码中使用,并将其包含在项目中。现在,您在这里得到的时间字符串
var str=“29-1-2016”
moment.js一起使用下面的代码,你就可以开始了-

var str = "29-1-2016";
var time = moment(str).toISOString();
\\ This variable time is now converted into ISO string

使用toISOString转换日期

var mydate="24-04-2017"
var IsDate=new Date(mydate).toISOString();
console.log('my iso date',IsDate);

toISOString()将从日期对象生成ISO字符串。那么如何将日期(如2014年8月29日)转换为日期对象。在我链接的页面左侧,有一组指向日期对象文档的链接。。。另请参见我添加了一个详细的解决方案。你能让日期选择器将日期改为
yyyy-mm-dd
字符串吗?这对我不起作用,但如果
var mydate=“2017-04-24”
,它确实起作用。它就是不起作用(用
moment.js 2.26.0
测试)
2016-01-29
yyyy-mm-dd
),所以它没有回答OP的问题