2015-04-16 2 views
1

Как получить записи сегодня и последние 7 дней записи в Метеор JS.I я использую Дата создания файлаКак получить сегодня и последние 7 дней в Meteor JS?

var date = new Date(); 

Я использую код коллекции MongoDB, как показано ниже:

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1; //January is 0! 
var yyyy = today.getFullYear(); 

var start = new Date(""+yyyy+"-"+mm+"-"+dd+"T00:00:00.000Z"); 
var end = new Date(""+yyyy+"-"+mm+"-"+(dd+1)+"T00:00:00.000Z"); 

var fetchResult = Profile.find({created:{$gte: start, $lt: end}}); 

Что делать?

+0

http://stackoverflow.com/questions/563406/add-days-to- datetime просто удалите 7 дней из новой Date(), сравните, и все должно быть хорошо – Sindis

ответ

3

Try вычесть число дней с временной метки текущей даты:

var today = new Date(); 
var weekAgoDate = new Date(); 
weekAgoDate.setUTCDate(weekAgoDate.getDate() - 7); 

var fetchResult = Profile.find({created:{$gte: weekAgoDate, $lt: today}}); 

Использование momentjs API намного интуитивное и проще понять:

var today = moment(); 
var weekAgoDate = today.subtract("days", 7); // same as today.add("days", -7) 

var fetchResult = Profile.find({created:{$gte: weekAgoDate.toDate(), $lt: today.toDate()}}); 

Примечание: Для того, чтобы получить родной объект даты, который обертывает Moment.js, использует toDate()

+0

Не получается, я использую созданное поле в коллекции в этом поле коллекции, назначая новую дату(). В DB Collection хранятся такие «созданные»: ISODate («2015 -04-16T08: 54: 06.543Z "). @chridam – user2344293

+0

Ур отправил ответ нерабочую неделюAgoDate cames NaN.Can вы проверили один раз. @ chridam – user2344293

+0

@ user2344293 Я обновил ответ, можете ли вы попробовать и сообщить мне, как это происходит? – chridam

0

Пожалуйста, просмотрите следующий фрагмент кода

var today_date = new Date(frame_date()); 
var range_date = new Date(today_date); 

range_date.setDate(today_date.getDate() - 1); // for toady records 
Profile.find({ 'created': {$gte: range_date, $lte: today_date}}) 


range_date.setDate(today_date.getDate() - 7); // for last 7 days records 
Profile.find({ 'created': {$gte: range_date, $lte: today_date}}) 

Определение функции frame_date здесь-

function frame_date() { 
    var time = require('time'); 
    var timestamp = new time.Date(); 
//  var timestamp = new Date(); 
    timestamp.setTimezone("Australia/Sydney"); //you can set timezone here 
    var getYear = timestamp.getFullYear(); 
    var getMnth = timestamp.getMonth(); 
    var getDate = timestamp.getDate(); 
    var gethours = timestamp.getHours(); 
    var getMins = timestamp.getMinutes(); 
    var getSecs = timestamp.getSeconds(); 
    var getMilisecs = timestamp.getMilliseconds(); 
    if (getDate < 10) { 
     getDate = "0" + getDate; 
    } 
    if (getMnth < 9) { 
     getMnth = parseInt(getMnth) + 1 
     getMnth = "0" + getMnth; 
    } else { 
     getMnth = getMnth + 1; 
    } 
    if (gethours < 10) { 
     gethours = "0" + gethours; 
    } 
    if (getMins < 10) { 
     getMins = "0" + getMins; 
    } 
    if (getSecs < 10) { 
     getSecs = "0" + getSecs; 
    } 
    var getMiliSecs = getMilisecs; 
    if (getMilisecs < 10) { 
     getMiliSecs = "0" + getMilisecs; 
    } else if (getMilisecs < 100) { 
     getMiliSecs = "00" + getMilisecs; 
    } else { 
     getMiliSecs = getMilisecs; 
    } 


    var final_framed_date = getYear + "-" + getMnth + "-" + getDate + " " + gethours + ":" + getMins + ":" + getSecs + "." + getMiliSecs; 
    return final_framed_date; 

} 

благодаря

Смежные вопросы