我的res.json函数似乎在修改我的数据。如果我在函数中记录数据,它将返回正确的数据。只有在res.json中,我的数据才发生变化,我找不到原因。res.json返回无意修改的输入
对于离。而不是返回{"unix":"1484600306","naturalFormat":"2017-01-16"}
的返回{"unix":"1484600306","naturalFormat":"\"2017-01-16\""}.
功能:
function unixToDate(timestamp) {
var a = new Date(timestamp * 1000);
//console.log(a);
var rgx = /T(\d{2}):(\d{2}):(\d{2}).(\d{3})Z/;
var newA = JSON.stringify(a);
//console.log(newA.replace(rgx, ""));
return newA.replace(rgx, "");
}
路线
router.get('/:unix', function(req, res) {
var timestamp = req.params.unix;
var regex = new RegExp("\\d{10}");
if (regex.test(timestamp)) {
var date = unixToDate(timestamp);
console.log(date);
res.json({ unix : timestamp, naturalFormat : date });
} else {
res.json({ unix: null, naturalFormat : null});
}
});
再次声明,我对于新手用正则表达式,如果我猜它必须是与该。
PS我没有使用toString(),因为我的日期出现错误,即2015年11月30日而不是2015年12月1日,所以这就是为什么我用正则表达式这样做。
谢谢!
这是一个XY问题。不要绕过日期对象。使用momentjs作为你的用例。 – Amberlamps