ユーザーが特定の年と月にトランザクションをリクエストできるAPIを開発しています。私は日付を操作するためのAPIとmomentjs
を構築するためにExpressJS
を使用しています Date()コンストラクターでJavascriptが正しく機能しない
routes.get('/transactions/:member_id/:year/:month', (req, res) => {
let {member_id, year, month} = req.params;
let start_date = new Date(year, month - 1, 1);
let end_date = moment(start_date).add(1, 'months');
console.log({start_date, end_date});
res.send({start_date, end_date})
});
のようにAPIが見えます。 (私は上記の私の実装で
month - 1
を行う理由です)私は
http://localhost:8080/transactions/m/2017/10としてこのAPIを打つ
は、私は、ユーザー
m
、今年
2017
と10月で月
10
のための取引をお願いします。
私は戻ってconsole
で取得すると、月の開始日が1
let start_date = new Date(year, month - 1, 1);
なく30
としてハードコードされているので、私は混乱しています
{ start_date: 2017-09-30T11:00:00.000Z,
end_date: moment("2017-11-01T00:00:00.000") }
です。ここで何がうまくいかないのですか?
おそらく、GMTで時刻を指定しているが、コンソール出力が別のタイムゾーンにあるためです。 – jfriend00
これは、あなたのタイムゾーンがGMT + 13であることを示唆していますか?ああ、待って...またはGMT + 12、10月1日現在の夏時間ですか? –