2015-01-22 8 views
5


मैं "बनाया गया" फ़ील्ड द्वारा डेटा ढूंढना चाहता हूं लेकिन मुझे केवल तारीख के बिना ही खोजना होगा (बिना समय के)।parse.com - मैं क्वेरी के बराबर कैसे बना सकता हूं, केवल तारीख के अनुसार जावास्क्रिप्ट

var d = new Date(); 
var query = new Parse.Query("TableName"); 
query.equalTo("createdAt", d); 

नाजी

उत्तर

16

आप मूल रूप से दो तिथियों उत्पन्न करने के लिए करना चाहते हैं क्या: 0: 0 समय

  • date+1day में 0: 0: 0 समय
    • पर 0 date

      फिर खोजें:

      : 0 - dateT23:
      query.greaterThanOrEqualTo('createdAt', date); 
      query.lessThan('createAt', datePlusOne); 
      

      यह प्रभावी रूप से आप dateT0 की सीमा देता है 59: ५९.९९९९९ समावेशी, लेकिन एक सुरक्षित तरीका में

      आप शुद्ध जावास्क्रिप्ट उपयोग करना चाहते हैं:

      // assuming date is the date/time to start from 
      date.setHours(0, 0, 0, 0); 
      // hours/min/sec/ms cleared 
      var datePlusOne = new Date(date); 
      datePlusOne.setDate(datePlusOne.getDate() + 1); 
      

      अपने कोड को पढ़ने/बनाए रखने के लिए आप moment library का भी उपयोग कर सकते हैं। यह पुस्तकालय parse.com में सर्वर-साइड का भी उपयोग किया जाता है, हालांकि यह एक पुराना संस्करण है।

      m1 = new moment(date); 
      m1.startOf('day'); 
      m2 = new moment(m1); 
      m2.add(1, 'day'); 
      // convert moment back to JavaScript dates 
      date = m1.toDate(); 
      var datePlusOne = m2.toDate(); 
      

      पूर्ण समाधान का उपयोग कर क्षणों:

      var d = new Date(); 
      var query = new Parse.Query("TableName"); 
      
      var start = new moment(d); 
      start.startOf('day'); 
      // from the start of the date (inclusive) 
      query.greaterThanOrEqualTo('createdAt', start.toDate()); 
      
      var finish = new moment(start); 
      finish.add(1, 'day'); 
      // till the start of tomorrow (non-inclusive) 
      query.lessThan('createdAt', finish.toDate()); 
      
      query.find.then(function(results) { 
          // use results 
      }); 
      
    +0

    मैं देख रहा हूँ कि आप मेरे जवाब को संपादित करने की कोशिश की के साथ पार्स बादल संहिता में परीक्षण किया गया है। आप पहले बनाए गए पर समावेशी ('bigThanEqualTo') बनना चाहते हैं जैसे आप 00:00:00 दिन को अपडेट किया गया समय शामिल करना चाहते हैं, लेकिन अगले दिन के लिए विशेष (अगले दिन 00:00:00 से पहले, लेकिन इसमें शामिल नहीं है)। –

    +1

    "bigThanEqualTo" काम नहीं कर रहा है, इसे "bigThanOrEqualTo" में बदलने की आवश्यकता है https://parse.com/questions/javascript-query-using-greaterthan-createdat –

    +0

    @NajiMakhoul उस, निश्चित और अद्यतन के लिए धन्यवाद। –

    3

    आप, परिणाम के लिए देख रहे हैं "बनाया आज" द्वारा फ़िल्टर, आप ऐसा कर सकता है:

    var moment = require("moment"); 
    var start = moment().sod() //Start of day 
    var end = moment().eod() //End of day 
    
    var query = new Parse.Query("myClass") 
    query.greaterThanOrEqualTo("createdAt", start.format()); 
    query.lessThan("createdAt", end.format()); 
    query.find({...}); 
    
    बेशक

    , अगर आप "आज" की तुलना में अधिक समय की तलाश कर रहे हैं, आप तीमुथियुस के उत्तर के साथ जाएंगे।

    इस कोड Momentjs 1.7.2

    संबंधित मुद्दे