我的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