如何在ejs中将variables设置为datetypes?
我使用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)}) })
所以结果包含一个Datetypes的startFrom
而在我的ejs:
$('#startDate').datepicker.set(<%= result.startDate %>)
这是一个string而不是date,而datepicker.set需要date。
我怎样才能使result.startDate作为一个date?
$('#startDate').datepicker.set(new Date('<%= result.startDate %>'))
似乎工作,但时区是不正确的。
和2)
在Nodejs / mongodb中操作date的最佳做法是什么? 我的用户来自不同的时区,所以我想在浏览器中显示date时间在他们的时区,我想也许最好在Mongodb中存储date为UTC?
首先回答问题2,是的,最好将mongo中的date存储为UTC,然后当显示给个人用户时,根据用户浏览器时区转换为本地时间。 或者不做任何转换,只是说时间是UTC。
要回答第一个问题,您的jquery datepicker可以设置为:
Date date = new Date('<%= result.startDate %>'); $('#startDate').datepicker('setDate', date.toUTCString());