我使用express.js,mongoose和ejs,我有一个类似的模型
var t_schema = new mongoose.Schema({
name: String,
startFrom: Date,
...
})
router.get('/', function(req,res) {
t_model.findOne({name: req.body.name}, function(result) {res.render('t', result)})
})
因此结果包含Date类型startFrom
在我的ejs中:
$('#startDate').datepicker.set(<%= result.startDate %>)
是String而不是Date,而datepicker.set需要Date。
如何将result.startDate作为日期?
$('#startDate').datepicker.set(new Date('<%= result.startDate %>'))
似乎有效,但时区不正确。
和2。)
在Nodejs / mongodb中操作Date的最佳做法是什么? 我的用户来自不同的时区,所以我想在浏览器的时区显示日期时间,我想也许最好将日期存储为Mongodb中的UTC?
答案 0 :(得分:1)
首先回答问题2,是的,最好将日期作为UTC存储在mongo中,然后当显示给单个用户时,根据用户浏览器时区转换为localtime。或者不做任何转换,只是说时间是UTC。
要回答第一个问题,您的jquery日期选择器可以设置为:
Date date = new Date('<%= result.startDate %>');
$('#startDate').datepicker('setDate', date.toUTCString());