【发布时间】:2016-08-03 11:33:34
【问题描述】:
当我使用 Date 而不是 String 类型声明我的架构时会出现问题。
案例一:
var MySchema = new Schema({
created_at: {type: String, default: ''}
});
通过这个 shema 声明,我使用 moment.js moment-timezone 模块来声明亚洲/加尔各答时区的当前时间。
var tmoment = require('moment-timezone');
var currentTime = tmoment().tz('Asia/Kolkata').format('llll');
而且我能够得到正确的时间。
案例二:
var MySchema = new Schema({
created_at: {type: Date, default: ''}
});
通过这个 shema 声明,我使用 moment.js moment-timezone 模块来声明亚洲/加尔各答时区的当前时间。
var tmoment = require('moment-timezone');
var currentTime = tmoment().tz('Asia/Kolkata').format('llll');
但是现在时间不是按照时区来的。我什至尝试了以下声明
var tmoment = require('moment-timezone');
var currentTime = tmoment().tz('Asia/Kolkata').format();
但是找不到解决办法。
【问题讨论】:
-
您能提供更多上下文吗?我在本地设置了它,它工作正常。
-
调用
format()会输出一个字符串。所以试试var currentTime = tmoment().tz('Asia/Kolkata'),它会给出一个日期对象 -
@mani 我试过这样做,但它给了我像
2016-04-13T11:39:27.942Z这样的日期时间,而根据我的情况,它返回Wed, Apr 13, 2016 5:09 PM -
你能发布你的猫鼬钩子代码来设置 created_at
-
var saveReq = new RequestModel({ created_at: currentTime });然后saveReq.save(function(err, result) {if(err) //condition for error});
标签: javascript node.js mongodb mongoose momentjs