我遇到問題,其中提交的日期字段是帶時間戳的返回日期,而不是時間戳記設置爲00:00:00
的日期。此代碼適用於其他實例,我試圖實現此過程,但出於某種原因,它不起作用,我很好奇,如果轉換必須在我的視圖中發生,或者應該發生在我的後端路線。帶時間戳記MomentJS返回日期
路線:
.post(function(req, res){
models.Creator.findAll({
order: 'createDate DESC',
where: {
dataDateStart: {
$gte: moment(req.body.startDate).utc().format("YYYY-MM-DD")
},
dataDateEnd: {
$lte: moment(req.body.endDate).utc().format("YYYY-MM-DD")
}
},
include: [{
model: models.User,
where: {
organizationId: req.user.organizationId,
},
attributes: ['organizationId', 'userId']
}],
limit: 10
}).then(function() {
res.redirect('/app');
}).catch(function(error){
res.send(error);
})
});
輸出where子句:
WHERE `creator`.`data_date_start` >= '2016-06-07 04:00:00' AND `creator`.`data_date_end` <= '2016-06-11 04:00:00' ORDER BY createDate DESC LIMIT 10;
正如你所看到的問題是,04:00:00
出現,而不是00:00:00
查看:
<div class="row">
<div class="creator-search-form col-md-6 col-md-offset-3">
<h1 id="search-header">Filter Feed</h1>
<form action="/app" method="post" class="creator-filter-fields">
<p>Date Range:</p>
<input type="date" name="startDate">
<input type="date" name="endDate">
<button type="submit" id="creator-filter-submit">Submit</button>
</form>
</div>
</div>
感謝您的評論,但您的解決方案提供了完全相同的輸出,我已經得到。仍然沒有生成日期字符串 – cphill
這不應該是這種情況。您可以在瀏覽器的控制檯窗口中嘗試它(假設存在moment.js庫)。 moment.utc('2015-01-01 00:00:00')。格式(「YYYY-MM-DD」)== >>>「2015-01-01」。問題可能在其他地方。請console.log req.body.startDate和req.body.endDate。 – zubair1024
你說得對,我加了'console.log('Unformatted:'+ req.body.startDate); \t \t console.log('Formatted:'+ moment.utc(req.body.startDate).format(「YYYY-MM-DD」));'並接收'未格式化:2016-06-13 格式化:2016 -06-13'。這似乎表明它可能是Sequelize,我的ORM是追加'04:00:00'。你會同意嗎? – cphill