MomentJSを使用して、非ローカライズされたUTC時間を取得しようとしています。これをMongoで作成された新しいドキュメントのデフォルトとして設定しようとしています。MongoDBドキュメントのデフォルト日付にMomentJSを使用
問題は、moment.utc()は、ノードサーバーが開始した日付を返します。したがって、1月1日にサーバーを起動すると、1月10日にドキュメントが作成されても、すべてのドキュメントのUTC時間は1月1日になります。
現在の時刻ではなくサーバーの開始時刻?
MomentJSを使用して、非ローカライズされたUTC時間を取得しようとしています。これをMongoで作成された新しいドキュメントのデフォルトとして設定しようとしています。MongoDBドキュメントのデフォルト日付にMomentJSを使用
問題は、moment.utc()は、ノードサーバーが開始した日付を返します。したがって、1月1日にサーバーを起動すると、1月10日にドキュメントが作成されても、すべてのドキュメントのUTC時間は1月1日になります。
現在の時刻ではなくサーバーの開始時刻?
問題は、スキーマを作成するときに(1回)moment.utc()
機能を呼び出しているということですので、新しい文書を作成するときに同じ結果の値が使用されます。
しかし、これにはmoment
を使用する必要はありません。default: Date.now
は、その関数が現在のUTC時刻を返すため、必要な処理を行います。 now
関数を呼び出さないことに注意してください。関数自体を渡すだけです。それが重要な違いです。
これにはファクトリ関数を使用する必要があります。
var currDate(){
return function(){
return moment.utc();
}
}
var SubFavoriteSchema = new Schema({
user : { type: String, ref: 'Account'},
date : {type: Date, default: currDate()}
});