如何在ejs中将变量设置为日期类型?

时间:2016-03-15 10:28:49

标签: node.js mongodb date datetime ejs

我使用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?

1 个答案:

答案 0 :(得分:1)

首先回答问题2,是的,最好将日期作为UTC存储在mongo中,然后当显示给单个用户时,根据用户浏览器时区转换为localtime。或者不做任何转换,只是说时间是UTC。

要回答第一个问题,您的jquery日期选择器可以设置为:

Date date = new Date('<%= result.startDate %>'); 
$('#startDate').datepicker('setDate', date.toUTCString());