私のres.json関数が自分のデータを変更しているようです。関数にデータを記録すると、適切なデータが返されます。 res.json内だけでデータが変更されますが、理由を把握することはできません。res.jsonが誤って変更された入力を返す
例:
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});
}
});
私は正規表現で初心者くさいだと私は推測していたならば、それはそれとは何かをしなければなりません。代わりに{"unix":"1484600306","naturalFormat":"2017-01-16"}
を返すのでは{"unix":"1484600306","naturalFormat":"\"2017-01-16\""}.
関数を返します。
PS私の日付が間違っている、つまり12/01/2015ではなく、2015年11月30日であるため、toString()を使用しませんでした。そのため、正規表現でこのようにしました。
ありがとうございました!
これはXYの問題です。 Dateオブジェクトの周りをハックしないでください。あなたのユースケースにはmomentjsを使用してください。 – Amberlamps