Node.js 如何在ejs中将变量设置为日期类型?
我正在使用express.js、mongoose和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)}) }) 所以结果包含一个
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中。是否以本地时间显示时间是一个设计决定,但我希望这是通过浏览器处理的,而不是在服务器上。