我尝试使用extern模块中的函数来创建日期
helper.js
function createDate() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd;
}
if(mm<10){
mm='0'+mm;
}
today = dd+'/'+mm+'/'+yyyy;
return today;
}
module.exports = {
f1: createDate,
};
然后在第createdAT
行的 server.js 中使用它:
let helper = require('./helper.js');
app.post('/tasks', function(req, res) {
let savedata;
console.log(req.body);
let tmpData = [];
for (let i = 0; i < req.body.length; i ++) {
savedata = new Model({
'taskName': req.body[i].taskName,
'isDone': false,
//'createdAt': Date.now(),
'createdAt': helper.f1(),
'prioraty': req.body[i].prioraty
});
tmpData.push(savedata)
}
savedata = tmpData;
Model.collection.insert(savedata, function (err, result) {
if (err) throw err;
if (result) {
res.json(result)
}
})
});
但它不是dd / mm / yyyy格式的日期,而是2018-02-05T23:00:00.000Z 格式错了,也是时间......我怎么能解决这个问题呢?
答案 0 :(得分:0)
所以根据我的理解,在将数据插入数据库之前不需要格式化日期,实际需要的是在返回响应时格式化日期。这里有一点调整你的代码:
将createDate()
更改为接受数据库中的日期值
function createDate(dateFromDb) {
var today = new Date(dateFromDb);
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd;
}
if(mm<10){
mm='0'+mm;
}
today = dd+'/'+mm+'/'+yyyy;
return today;
}
然后取消注释第一个//'createdAt': Date.now()
savedata = new Model({
'taskName': req.body[i].taskName,
'isDone': false,
//'createdAt': Date.now(),
'prioraty': req.body[i].prioraty
});
然后在发送结果之前最后执行此操作
if (result) {
result.createdAt = helper.f1(result.createdAt);
res.json(result)
}