如何将 jquery 全日历日期格式化为 MongoDB 的 ISODate?

How to format jquery fullcalendar date as ISODate for MongoDB?

我想将从全日历的 dayClick 事件中获取的一天存储为 MongoDB 中的 ISODate。 dayClick:function(日期,allDay,jsEvent,视图){ ce.start = 日期; 警报('Clicked on: ' + ce.start + '--' + date.format()); }) 结果是:

1425427200000--2015-03-04

但我需要 mongo:

"start" : ISODate("2015-03-27T23:00:00.000Z")

正确的格式规则是什么。 ca.start = 日期。??????


编辑

我在 mongodb.org 上找到了这个,但我不能真正使用它。提供的答案总是 return "start" : "ISODate(\"2015-03-18T14:35:41.751Z\")", 但是我需要 "start" : ISODate("2015-03-12T23:00:00.000Z"),

也许专家可以从以下内容中获得更多信息:

mongo shell 使用 ISODate 助手包装 Date 类型的对象;但是,对象仍然是 Date 类型。

以下示例对 return 日期对象同时使用 new Date() 构造函数和 ISODate() 构造函数。

var myDate = new Date(); var myDateInitUsingISODateWrapper = ISODate();

您也可以将 new 运算符与 ISODate() 构造函数一起使用。

要打印变量的值,在shell中输入变量名,如下所示:

我的日期

结果是包装在 ISODate() 助手中的 myDate 的日期值:

ISODate("2012-12-19T06:01:17.171Z")

你可以使用 .toISOString() 做这样的事情

var ISODate = new Date(date).toISOString();

所以你的 dayClick 看起来像这样

dayClick: function(date, allday, e, view){
   var ISODate = new Date(date).toISOString();
   console.log('ISODate("'+ISODate+'")');
}

这是一个demo

Fullcalendar 使用 momentjs 作为日期。

您可以 format 随心所欲:

var formatstring = "YYYY-MM-DD";
date.format(formatstring);

对于 ISO 格式,请在此处查看我的回答:

moment().utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]");
//or
moment().utc().format('[ISODate("]YYYY-MM-DDTHH:mm:ss.SSS[Z")]');

编辑:

出于某种原因,我假设您需要一个字符串...我认为您实际上只需要另一个对象中的 JS 日期对象:

var obj = {
    start: moment().toDate()
};
//or
var start = moment().toDate();

再次编辑:

我查看了您的 并了解了更多背景信息。您可能想要:

select: function(start, end, allDay) {
            var ce = {};
            ce.start = start.toDate();
//...