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

Node.js 如何在ejs中将变量设置为日期类型?,node.js,mongodb,date,datetime,ejs,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)}) }) 所以结果包含一个

我正在使用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)})
})
所以结果包含一个日期类型startFrom

在我的ejs中:

$('#startDate').datepicker.set(<%= result.startDate %>)
$('#startDate').datepicker.set()
它是字符串而不是日期,而datepicker.set需要日期

我怎样才能把result.startDate作为日期

$('startDate').datepicker.set(新日期('')

看起来不错,但时区不正确

(二)

在Nodejs/mongodb中操作日期的最佳实践是什么?
我的用户来自不同的时区,因此我想在浏览器中显示他们时区中的日期时间,我认为在Mongodb中将日期存储为UTC可能更好?

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

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

Date date = new Date('<%= result.startDate %>'); 
$('#startDate').datepicker('setDate', date.toUTCString());
日期日期=新日期(“”);
$('#startDate').datepicker('setDate',date.toutString());

这可能更适合作为两个不同的问题。你说的“时区不正确”是什么意思?可能服务器的时区和浏览器的时区不同?正如你所说,用户来自不同的时区。您应该假设浏览器和服务器有不同的时区。我应该在浏览器中将日期转换为UTC吗?不同用户的浏览器的时区不同,服务器的时区也不同,但我会将数据以UTC的形式存储在mongo中。是否以本地时间显示时间是一个设计决定,但我希望这是通过浏览器处理的,而不是在服务器上。