我有一个在mongoose中定义的数据模型:
var timeTicketSchema = mongoose.Schema({
relatedObjectId : mongoose.Schema.ObjectId,
startTime : Date,
endTime : Date,
claimed: { type: Boolean, default : false },
claimedOn : Date,
locked : { type : Boolean, default : false },
lockedOn : Date,
bookingId : mongoose.Schema.ObjectId,
pricePerHour : Number
});
创建我以下列格式发布时,日期是从UTC开始的毫秒数:
{
"relatedObjectId": "561ee6bbe4b0f25b4aead5c8",
"startTime" : "1448550000000",
"endTime" : "1448551800000"
}
然而,当我在mongo中查看我创建的对象时,该对象没有正确的开始和结束时间:
{
"_id": {
"$oid": "564cfb5e7c24fa1100991321"
},
"endTime": {
"$date": "1970-01-01T00:00:00.000Z"
},
"startTime": {
"$date": "1970-01-01T00:00:00.000Z"
},
"relatedObjectId": {
"$oid": "561ee6bbe4b0f25b4aead5c8"
},
"locked": false,
"claimed": false,
"__v": 0
}
插入代码非常简单:
var timeTicket = new TimeTicket();
timeTicket.tutorId = tutorId;
timeTicket.startTime = new Date(startTime);
timeTicket.endTime = new Date(endTime);
timeTicket.save(function(err, timeTicket){
if(err){
return next(err, null);
}
return next(null, timeTicket);
});
在我的日期未进入的地方,我错过了什么?
答案 0 :(得分:1)
您需要先将 parseInt()
的时间戳转换为int,然后再将其转换为日期:
var timeTicket = new TimeTicket();
timeTicket.tutorId = tutorId;
timeTicket.startTime = new Date(parseInt(startTime));
timeTicket.endTime = new Date(parseInt(endTime));
timeTicket.save(function(err, timeTicket){
if(err){
return next(err, null);
}
return next(null, timeTicket);
});