2016-07-18 10 views
0

MomentJSを使用してMongoDBに日付を保存しようとしています。現在の日付/時刻に1時間を加えて保存します。これを行うには、次のコードを使用します(3600を変数に変更するための基本を取得したら、数を秒単位で指定するAPIからこの数値を取得します)。NodeJSがMomentを使用してMongoDBに日付を保存する

var expire = moment().add(3600, 's').format(); 
User.update({email: req.user}, {$set: {expire: expire}}, function(err, update) { 
    if(err) throw err; 
}); 

console.logに期限切れの値が設定されている場合、期待どおりに1時間追加された時刻が表示されます。問題は、自分のDBに保存されたものが、時間が追加されていない現在の時間です。

ご協力いただければ幸いです。

+0

文字列の値をmongodbに送信しても問題はありません。その期限切れ変数でtostringを試してください。 –

答えて

1

mongodbでは、比較時間はutc timeとDate objを使用することになっています。 var expire = moment().add(3600, 's').format();はobjでない文字列を返します。 Uはそれをmongodbが知ることができるようにDate objに変換する必要があります。 あなたがしなければならないことはとても簡単です。 UがGTとLTとモンゴの時間を比較したい場合は

var expire = moment().add(3600, 's').format().toDate() 

実際、私はUが時刻をUTCに変更するとします。 let time = moment().utc(yourTime, "YYYY-MM-DD HH:mm:ss").toDate()

+0

このコードスニペットでは、あなたの投稿の質を向上させるための説明(本当に助けます)(// meta.stackexchange.com/q/114762)を含む質問が解決されるかもしれません。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

関連する問題